10.5 三个模型间关系

定位模型、display模型、BFC模型三者之间的关系如下。

1、脱离流与BFC

(1)脱离流定位元素本身的margin不会或周围margin发生折叠。

(2)脱离流定位元素内部自动创建BFC,内部不会与外部发生margin折叠。

(3)因为只有块级元素内部才能创建BFC,如果脱离流定位的元素是行内级元素会被自动转化成块级。按照下列表格进行转化。

display属性的块级转化

指定值specified value 计算值computed value
inline 、inline-block block
inline-table table
inline-flex flex
inline-grid grid

2、display、position、float三者关系

(1)如果元素设置display:none,则包括后代不会创建盒子,position与float设置无效。

(2)如果设置position: absolute或fixed,则设置float: left 或right无效,即此时float计算值是none,display属性进行块级转化。

(3)如果设置float: left或right,则display属性进行块级转化。

(4)根元素html内部创建BFC,所以display属性也进行块级转化。