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