完整名称:(块级格式化上下文)「block formatting context」
BFC 是 CSS 中页面的一块独立渲染区域,内部元素的渲染遵循特定规则,与区域外部的元素相互隔离。
html
根元素(整个文档的根元素自动成为 BFC)。float
属性值不是 none
(即设置了浮动 left
、 right
)。position
属性值是 absolute
(绝对定位)或 fixed
(固定定位)。display
属性值是 inline-block
、table-cell
、flex
、table-caption
、inline-flex
等。overflow
属性值不是 visible
(如 auto
、hidden
、scroll
)。margin
决定,属于同一个 BFC 的两个相邻元素的margin
会发生重叠。计算 BFC 的高度时,自然也会检测浮动或者定位的盒子高度。
只要把父元素设为 BFC 就可以清理子元素的浮动了,最常见的用法就是在父元素上设置 overflow: hidden
样式,对于 IE6 加上 zoom: 1
就可以了。
原理:
通过创建 BFC,浮动元素不再影响 BFC 的元素布局,解决了浮动元素导致的文字环绕问题。