Skip to content

盒模型

box:盒子,每个元素在页面中都会生成一个矩形区域(盒子)

盒子类型:

  1. 行盒,display等于inline的元素
  2. 块盒,display等于block的元素

行盒在页面中不换行、块盒独占一行

display默认值为inline

浏览器默认样式表设置的块盒:容器元素、h1~h6、p

常见的行盒:span、a、img、video、audio

盒子的组成部分

无论是行盒、还是块盒,都由下面几个部分组成,从内到外分别是:

  1. 内容 content

width、height,设置的是盒子内容的宽高

内容部分通常叫做整个盒子的内容盒 content-box

  1. 填充(内边距) padding

盒子边框到盒子内容的距离

padding-left、padding-right、padding-top、padding-bottom

padding: 简写属性

padding: 上 右 下 左

填充区+内容区 = 填充盒 padding-box

  1. 边框 border

边框 = 边框样式 + 边框宽度 + 边框颜色

边框样式:border-style 边框宽度:border-width 边框颜色:border-color

以上的这三个css属性都属于简写的语法糖属性,可以依次按照上右下左来进行设置。

边框+填充区+内容区 = 边框盒 border-box

  1. 外边距 margin

边框到其他盒子的距离

margin-top、margin-left、margin-right、margin-bottom

速写属性margin

盒模型应用

改变宽高范围

默认情况下,width 和 height 设置的是内容盒宽高。

页面重构师:将psd文件(设计稿)制作为静态页面

衡量设计稿尺寸的时候,往往使用的是边框盒,但设置width和height,则设置的是内容盒

  1. 精确计算
  2. CSS3:box-sizing

改变背景覆盖范围

默认情况下,背景覆盖边框盒

可以通过background-clip进行修改

溢出处理

overflow,控制内容溢出边框盒后的处理方式

断词规则

word-break,会影响文字在什么位置被截断换行

normal:普通。CJK字符(文字位置截断),非CJK字符(单词位置截断)

break-all:截断所有。所有字符都在文字处截断

keep-all:保持所有。所有文字都在单词之间截断

空白处理

空白处理会影响到空白折叠。

white-space: nowrap

单行文本溢出出现省略号:

css
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;

MIT License