CSS 盒模型
盒模型
-
box:盒子,每个元素在页面中都会会生成一个矩形区域(盒子,容器)
- 在游览器按F12或者右击检查可以在Elements的Styles找到盒模型
-
盒子类型
-
行盒,display等于inline的元素
- 行盒在页面中不换行、块盒独占一行
- 常见的行盒:
span、a、img、video、audio
-
块盒,display等于block的元素
- 游览器默认样式表设置的块盒:容器元素、
h1~h6、p
- 游览器默认样式表设置的块盒:容器元素、
盒子的组成部分
- 无论是行盒、还是块盒,都由下面几个部分组成,从内到外分别是:
-
内容 content
- width、height,设置的是盒子内容的宽高
- 内容部分通常叫做整个盒子的内容盒 content-box
-
填充 padding
- 盒子边框到盒子内容的距离
padding-left
左边padding-right
右边padding-top
上面padding-bottom
下面- 速写属性
padding:1px 1px 1px 1px;
- 四个值:分别代表上右下左
- 三个值:分别代表上(左右)下
- 两个值:分别代表(上下)(左右)
- 盒子边框到盒子内容的距离
-
边框 border
- 边框 = 边框样式 + 边框宽度 + 边框颜色
- 边框样式:
border-style
- 边框宽度:
border-width
- 边框颜色:
border-color
- 速写属性: 宽度,样式,颜色
边框 + 填充区 + 内容区 = 边框盒 border-box
- 外边距 margin
-
边框到其它盒子的距离
margin-left
左边marging-right
右边marging-top
上面marging-bottom
下面- 速写属性margin
margin:1px 1px 1px 1px;
- 四个值:分别代表上右下左
- 三个值:分别代表上(左右)下
- 两个值:分别代表(上下)(左右)
改变宽高范围
- 默认情况下
width
和height
设置的是内容盒宽高 - 衡量设计稿尺寸的时候,往往使用的是边框盒,但设置width和height,则设置的是内容盒
- 解决方案
- 精确计算
- 使用CSS3属性:
box-sizing
允许我们在元素的总宽度和高度中包含填充和边框。- 可选值
border-box
- 可选值
content-box
- 可选值
背景覆盖范围
- 默认情况下,背景覆盖边框盒
- 可以通过
background-clip
进行修改- 可选值
border-box
- 可选值
padding-box
- 可选值 默认值
content-box
- 可选值
溢出处理
overflow
控制内容溢出边框盒后的处理方式overflow:hidden
溢出隐藏
断词处理
word-brack
会影响文字在什么位置被截断换行normal
普通。 CJK字符(文字位置阶段),非CJK字符(单词位置截断)break-all
截断所有。所有字符都在文字处截断keep-all
保持所有。所有文字都在单词之间截断
空白字符
white-soace:nowrap
空白字符的处理规则是不换行text-overflow:ellipsis
三个圆点
行盒的盒模型
- 常见的行盒:包含具体内容的元素
span、strong、em、i、img、video、audio、a
显著特点
-
盒子沿着内容延申
-
行盒不能设置宽高
- 调整行盒的宽高,应该使用字体大小、行高、字体类型,间接调整
-
内边距(填充区)
- 水平方向有效,垂直方向仅会影响背景,不会占据空间
-
边框
- 水平方向有效,垂直方向仅会影响背景,不会占据空间
-
外边距
- 水平方向有效,垂直方向仅会影响背景,不会占据空间
行块盒
display:inline-block
- 不独占一行
- 盒模型中所有的尺寸都有效
空白折叠,发生在行盒内部 和 行盒之间(行块盒)之间
可替换元素 和 非可替换元素
- 大部分元素,页面上现实的结果,取决于元素内容,称为非可替换元素
- 少部分元素,页面上显示的结构,取决于元素属性,称为可替换元素
- 可替换元素:
img、video、audio
- 绝大部分可替换元素都是行盒
- 可替换元素类似于行快盒,盒模型中所有尺寸都有效
本文来自博客园,作者:懒惰ing,转载请注明原文链接:https://www.cnblogs.com/landuo629/p/12434080.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?