BFC, 全称为Block Formatting Context(块级格式化上下文), 它是一块独立的渲染区域, 它规定了在该区域中, 常规流块盒的布局. 大致规则为:
- 常规流块盒在水平方向上, 必须撑满包含块
- 常规流块盒在包含块的垂直方向上依次排列
- 常规流块盒若外边距无缝相邻, 则进行外边距合并
- 常规流块盒的自动高度和摆放位置, 无视浮动元素(绝对定位元素)
会在内部创建BFC区域的元素:
- 根元素
- 浮动和绝对定位元素(包括固定定位)
- overflow不等于visible的块盒
- display属性取值为inline-block, table-cell, table-caption, flex, inline-flex之一的元素
创建了BFC的元素, 隔绝了它内部和外部的联系, 内部的渲染不会影响到外部, 因此:
- 创建BFC的元素, 它本身的自动高度需要计算浮动元素
- 创建BFC的元素, 它的边框盒不会与浮动元素重叠
- 创建BFC的元素, 不会和它的子元素进行外边距合并
网友评论