BFC速读
什么是BFC
BFC块格式化上下文(Block Formatting Context)是 Web 页面的可视化 CSS 渲染的一部分,是布局过程中生成块级盒子的区域,也是浮动元素与其他元素的交互限定区域。
那么,什么是Block Formatting Context?
web 布局主要有两个部分组成:
- box(盒模型)
 - formatting context(格式化上下文)
 
- 正常流
- block formatting context
 - inline formatting context
 
 - 弹性布局
- flex formating context
 
 - 网格布局
- grid formatting context
 
 
通俗理解:BFC 是一个独立的布局环境,可以理解为一个容器,在这个容器中按照一定规则进行物品摆放,并且不会影响其它环境中的物品
创立BFC
BFC是一个css渲染特殊的一部分,需要一定的条件才能创立(establish)
- 根元素(
html) - 浮动元素 (元素的 
float不是none) - 绝对定位元素 (元素具有 
position为absolute或fixed) - 内联块 (
display: inline-block) 、表格单元格 (display: table-cell)、表格标题 (display: table-caption)、弹性盒子下的item(felx-items)、内联弹性盒子(inline-flex)... overflow且值不是visible的块元素
总的来说,BFC 是很正常的formatting context,在一行写完自动会换行的且可以有文字内容的 formatting context 便会创立 BFC
BFC可以解决的问题
垂直外边距重叠问题 去除浮动 自适用两列布局