BFC(Block Formatting Contexts) 块级格式化上下文
块级格式化上下文是页面上的一块渲染区域,这块区域由符合条件的容器产生。容器内的子元素会由块盒子和浮动元素按如下规则排列:
- 纵向一个挨着一个排列
- 两个盒子的纵向间距由
margin
属性决定,两个相邻的盒子在垂直方向上的margin
会有种“重叠合并”的效果,此时纵向间距距离取较大的那个margin
值
这个容器可以看作一个独立的布局环境,容器外的元素与容器内的元素(包括浮动元素)在布局上不会影响到对方。这就产生了两种有趣的效果:
- BFC容器的高度将浮动元素的高度计算进去。(MDN示例)
- 浮动清除效果。BFC会排斥外部浮动元素,让浮动元素和块元素在视觉上不再有重叠的效果。(MDN示例)