BFC是什么

74 阅读1分钟

为什么会有BFC?BFC是什么?如何触发?BFC解决了什么问题?
这一次,完全弄懂BFC
面试题:介绍下 BFC 及其应用

BFC: 块级格式化上下文

BFC 触发条件:

  • 浮动元素(元素的 float 不是 none)
  • 绝对定位元素(元素的 position 为 absolute 或 fixed)
  • 行内块 inline block 元素
  • overflow 值不为 visible 的块元素
  • 弹性元素(display为 flex 或 inline-flex元素的直接子元素)

BFC解决了什么问题:

  1. 清除浮动(为什么不用 .clearfix 呢?)
  2. 防止 margin 合并
  3. 某些古老的布局方式会用到(已过时)

其他

使用最新的 display: flow-root 来触发 BFC 就没有副作用了,但是很多人不知道。