1. 概念:Block fomatting context (块级格式化上下文),是页面中独立的渲染区域,来决定HTML元素如何在环境中定位,与其他元素相互作用。
2. 如何开启BFC:
- 根元素或者其他包含它的元素
- 开启定位,position的值设置为absolute或fixed
- 开启浮动,float的值不为none
- 设置内容溢出,overflow的值设置为visible其他的值,hidden,auto,scroll
- 设置元素为内联块或表格单元格或表格标题,即display设置成inline-block,table-cell或table-caption
3. BFC的约束规则:
- 开启了BFC的元素是页面上的独立容器,容器内的元素不会影响外面的元素
- 内部的盒会在垂直方向一个接一个排列
- 不会被浮动元素覆盖
- 计算BFC的整体高度时,浮动的子元素也要参与计算,BFC中的子元素不会超出包含块
- 处于同一个BFC中的元素会发生外边距重叠
4.BFC的应用:
- 解决边距塌陷问题(包含垂直方向,水平方向,嵌套元素的margin重叠)
- 清除内部浮动(对应计算BFC高度时,内部浮动元素也参与)
- 自适应多栏布局