从0到0.1学习实践盒子模型

news/2024/11/15 17:33:08/文章来源:https://www.cnblogs.com/GJ504b/p/18428779

从0到0.1学习实践盒子模型

盒子模型概念

预备知识

  1. margin:外边距【两个元素之间的距离】
  2. border:边框
  3. padding:内边距【内容区域和边框距离】
  4. height:文本高度
  5. width:文本宽度

content-box

(形象图片)
img
content-box--只计算内容区域的宽度和高度,边框和内边距不算在内。

.box {width: 200px;       /* 内容区域宽度 */height: 100px;      /* 内容区域高度 */padding: 10px;      /* 内边距 */border: 5px solid; /* 边框 */
}

$$contentbox=width*height=20000px$$
p.s.

  • 总宽度 = content-width(200px) + padding-left(10px) + padding-right(10px) + border-left(5px) + border-right(5px) = 230px
  • 总高度 = content-height(100px) + padding-top(10px) + padding-bottom(10px) + border-top(5px) + border-bottom(5px) = 130px
    总结:在 content-box 模型下,width 和 height 仅控制内容区域的大小。内边距和边框的大小需要额外加到元素的总尺寸中去。这样计算可以帮助你更好地控制布局,特别是在处理复杂的页面设计时。
    【想象一下你有一个放饼干的盒子
    content-box 就像是一个只计算饼干部分的盒子
    盒子的内部分:你只考虑盒子里面的饼干的空间(内容区域)。
    盒子外面的:内边距(饼干和盒子边缘之间的空间)和边框(盒子本身的厚度)是额外的部分,外加在盒子的实际大小上。
    所以,如果你说盒子宽度是 20 厘米,那只是饼干部分的宽度,不包括边框和内边距。你还需要额外加上边框和内边距的大小,才能得到整个盒子的实际大小。】

border-box

border-box 包括内容、内边距和边框在内的总大小。
这意味着在 border-box 模式下,元素的总宽度和高度更易于控制。

【想象一下你有一个放饼干的盒子
盒子的总宽度:这包括饼干的部分、内边距和边框。你设定的 20 厘米就是整个盒子的实际宽度,包括所有这些部分。
所以,无论内边距或边框的大小如何,盒子的总宽度不会改变。设定的 20 厘米就包括了所有东西,方便你计算和设计。】

.box {box-sizing: border-box; /* 包括内边距和边框在宽度和高度内 */width: 200px;           /* 总宽度包括内容、内边距和边框 */height: 100px;          /* 总高度包括内容、内边距和边框 */padding: 10px;          /* 内边距 */border: 5px solid;     /* 边框 */
}

$$
borderbox=total-width*total-height
$$
总宽度 = 200px(包括内边距和边框)
总高度 = 100px(包括内边距和边框)
总结:
border-box:你设定的宽度包括内容区域、内边距和边框。像是总宽度包含了所有的部分,计算起来更简单。
补充:
通常推荐使用 border-box。它简化了布局计算,因为设定的宽度和高度已经包括了内容、内边距和边框,减少了计算错误的可能性。这对于响应式设计尤其有帮助,可以更容易地管理和调整元素的大小。

ADDITION:
content区域本身没有直接的颜色属性,但是你可以通过设置背景颜色来间接影响内容区域的显示:
padding区域也会继承背景颜色,这意味着你设置的背景颜色会扩展到内边距区域
此两者皆没有颜色属性,而是继承盒子本身颜色
border部分可以直接设置颜色、宽度和样式。你可以单独设置边框的颜色:
margin本身没有颜色属性,因为margin是用来控制元素间的空间,不影响背景或边框的显示。如果需要视觉效果,可以使用其他技术,如背景颜色的层叠或阴影
其他相关属性
背景色(background-color):设置盒子(包括内容区域和内边距)的背景颜色。
文本颜色(color):设置盒子中内容的文本颜色。

盒子模型实践--制作一个常见顶部样式【flex实现】

img

<!DOCTYPE html>
<html lang="ch">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>盒子模型实践</title><link rel="stylesheet" href="./盒子模型实践.css">
</head>
<body><div class="father"><div><p>这是一个演示模型</p></div><div><p>欢迎观看</p></div></div><div class="box-9"><div class="box-3"></div><div class="box-3"></div><div class="box-3"></div><div class="box-2"></div><div class="box-2"></div><div class="box-2"></div><div class="box-1"></div><div class="box-1"></div><div class="box-1"></div></div>
</body>
</html>
* {margin: 0;padding: 0;background-color: bisque;
}.father{display: flex;background-color: rgb(121, 113, 129);justify-content: space-between;width: 60%;/* width: 60%;超过60%则页面不再是100%宽度了,要用滚动条,反之则不足100% */padding: 30px 20%;/* 没必要调节 height,因为只调节了content,不能准确掌握布局, border就是边框,让布局更直观*/border: 1px solid;
}
.father p{/* padding: 0; *//* margin: 0; *//* p元素没有上述这些玩意儿 */background-color: aliceblue;
}
.box-9{margin-top: 20px;border: 1px solid;width: 604px;height: 604px;display: flex;margin-left: 30%;/* box-sizing: border-box; *//* 一个盒子是没有办法用flex属性自己搞到center的,要自己调节margine *//* 没办法,刷新刷出来的 *//* justify-content: center; */flex-wrap: wrap;
}
.box-3{/* border: 1px;这里border有叠加效果 */width: 200px;height: 200px;border: 1px solid;
}
.box-2{/* border: 1px;这里border有叠加效果 */width: 200px;height: 200px;border: 1px solid;
}
.box-1{/* border: 1px;这里border有叠加效果 */width: 200px;height: 200px;border: 1px solid;
}

实践中的问题及解答

Q1.两不像的盒子?

标准盒子不就是要考虑content,border,padding,然后怪异盒子不就是只考虑一个content,这个考虑padding,content
img
img
A1.
img

Q2.我用了/* justify-content: center; */为啥盒子不居中?

A2.没有理解好justify-content性质
<<<这个是针对2个及以上盒子的,一个盒子要自己想办法去调节margin上下左右大小实现center

Q3.border重叠叠加?

A3。错误的,是以大的为准,之所以叠加是因为元素溢出,大盒子的total-width=小盒子的total-width+小盒子border大小*2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/802735.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode 445. 两数相加 II

1.题目基本信息 1.1.题目描述 给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 1.2.题目地址 https://leetcode.cn/problems/add…

Windows命令:时间延迟命令

延迟一段时间再执行下一条命令”。 一、利用ping实现延迟命令 这种延时手段是不精确的,因为每一次ping通的延迟不一样。 1、示例chcp 65001 @echo off echo 延时前:%time% ping /n 3 127.0.0.1 >nul echo 延时后:%time% pause 参数/n表示ping通的次数。127.0.0.1是本机ip…

电力施工作业绝缘手套识别系统

电力施工作业绝缘手套识别系统对电力作业人员在电力设备上进行施工作业时是否佩戴绝缘手套进行识别分析,当电力施工作业绝缘手套识别系统检测到作业人员未佩戴绝缘手套时立即抓拍存档同步回传给后台监控人员,提醒相关人员及时制止,及时规避更危险的触电事故发生。电力施工作…

sicp每日一题[2.24-2.27]

2.24-2.26没什么代码量,所以跟 2.27 一起发吧。Exercise 2.24Suppose we evaluate the expression (list 1 (list 2 (list 3 4))). Give the result printed by the interpreter, the corresponding box-and-pointer structure, and the interpretation of this as a tree (as…

ansible-cmdb简单使用

1、安装 官方:https://ansible-cmdb.readthedocs.io/en/latest/ wget https://github.com/fboender/ansible-cmdb/releases/download/1.27/ansible-cmdb-1.27-2.noarch.rpm yum -y install ./ansible-cmdb-1.27-2.noarch.rpm2、使用 首先,为你的主机生成 Asible 输出: mkdir…

第三周作业(海报➕二维码)

二维码可以在那个网站上面学习数学知识

MySQL线上问题排查

线上问题排查 一、线上故障排查的思路与方向 在程序开发与运行过程中,出现Bug问题的几率无可避免,数据库出现问题一般会发生在下述几方面:①撰写的SQL语句执行出错,俗称为业务代码Bug。 ②开发环境执行一切正常,线上偶发SQL执行缓慢的情况。 ③线上部署MySQL的机器故障,如…

ToEasy利用99元阿里云服务器内网穿透的实操过程

一、准备工作: 1、阿里云99元服务器(安装Windows)或者其他windows云服务器 2、frp内网穿透软件 3、数据库MSSQL 2014绿色版 4、ToEasy服务器和客户端软件 二、内网穿透设置 解压frp软件后,打开配置文件frps.toml和frpc.toml进行设置。 1、服务端(frps.toml)#bindAddr = &…

PARTIV-Oracle数据库存储结构-逻辑存储结构

12.逻辑存储结构 12.1. 逻辑存储结构简介 Oracle数据库为数据库中的所有数据分配逻辑空间。数据库空间分配的逻辑单位是数据块、区间、段和表空间。在物理层面,数据存储在磁盘上的数据文件中(见第11章“物理存储结构”)。数据文件中的数据存储在操作系统块中。图12-1是物理和…

第三周作业(海报)

我所选的主题是数字。运用数字王国的标题,吸引小学生的注意。学生们可以在数字王国中探索,从低年级的认识数字开始培养起对数学的兴趣,为以后的数学学习铺垫好坚实的基础。在本张海报中,我运用了文字、图片、插画、数字这三种素材,并且插画颜色丰富、且进校园生活和数字,…

解决pyinstaller打包后的程序有时卡住按回车才动

当CMD命令提示符出现卡住现象,只需通过鼠标操作解决:点击标题栏,右键选择属性,取消勾选快速编辑模式,即可避免输入回车才能继续的问题。 原因 快速编辑模式阻塞控制台输出 解决 鼠标移动至标题栏->单击鼠标右键->属性->取消勾选快速编辑模式

别再吹牛逼说什么零延迟了,不可能的事

关于流媒体推拉流延时的几点说明。经常看到一些流媒体相关的程序,号称零延迟,不用怀疑,这肯定吹牛逼的。 搞音视频开发,有个核心的指标就是实时性,也就是延迟多少毫秒,这个问题问的也是最多的。 音视频文件几乎不存在实时性问题,只有音视频流才有实时性的指标。 延迟多久…