概念
块级格式化上下文(Block Formatting Context)是页面中的一块 CSS 渲染部分,里面的元素按一定的规则被渲染,BFC 里面的元素不会在布局上影响到外面的元素
触发条件
- body 根元素
- 浮动元素:float 除 none 以外的值(right, left)
- 绝对定位元素:position(absolute,fixed)
- display: inline-block, table-cells, flex
- overflow 除了visible 以外的值(hidden, auto, scroll)
应用
- 解决 margin 合并问题: 上 div 的 margin-bottom,和下 div 的margin-top 会重叠,解决办法是把其中一个 div 放入 BFC 中
- BFC 可包含浮动元素:在父元素上加 display: hidden,则里面的浮动元素就会被他包裹起来
- 阻止元素被浮动元素覆盖
参考资料
https://zhuanlan.zhihu.com/p/25321647
https://zhuanlan.zhihu.com/p/127187654