常规流
盒模型:规定单个盒子的规则。
视觉格式化模型(布局规则):页面中多个盒子排列规则。
视觉格式化模型,大体上将页面中盒子的排列方式分为三种:
- 常规流
- 浮动
- 定位
常规流布局
- 又名:常规流、文档流、普通文档流、常规文档流
- 所有元素,默认情况下都属于常规流布局。
- 总体规则:块盒独占一行,行盒水平依次排列。
包含块:
- 包含块(containing block):每个盒子都有它的包含块,包含块决定了盒子的排列范围。
- 绝大部分情况下,盒子的包含块,为其父元素的内容盒。
块盒
- 每个块盒的总宽度,必须刚好等于包含块的宽度。
- 宽度(width)的默认值是auto:将剩余宽度吸收掉。
- 外边距(margin)取值可以为auto:默认值为0.
- width的吸收能力强于margin。
- 若宽度、边框、内边距、外边距计算后,仍然有剩余空间,该剩余空间被margin-right全部吸收。
- 在常规流中,块盒在其包含块中居中,可以先定宽(width),然后再将左右margin设置为auto。
- 每个块盒垂直方向上的auto值
设置了width属性后,height与内容同步。
height:auto,适应内容的高度。
margin:auto,表示0. - 百分比取值
padding、宽高、margin可以取值为百分比。
以上百分比是相对于包含块的宽度。
高度的百分比:
(1) 包含块的高度取决于子元素的高度。
(2) 在父元素高度未设置时,设置子元素高度百分比无效。
(3) 包含块的高度不取决于子元素的高度,即父元素height已经设置,则子元素设置height百分比设可行的,相对于父元素高度。 - 上下外边距的合并
两个常规流块盒,上下外边距相邻(之间没有东西),会进行合并。
两个外边距取最大值。