全称为Block Formatting Context块级上下文

特性

  • 内部block会垂直一个一个放置
  • 同一个BFC上下文会发生外边距折叠,不同BFC的元素不会发生这样的折叠
  • BFC 就像是一个隔离的作用域,其内部元素的布局不会影响到外部
  • BFC 会包含浮动元素(清除浮动):BFC在计算自身高度时,会将内部的浮动元素(float)也计算在内。

触发条件

  • 根元素()
  • 浮动元素(float 不为 none)
  • 绝对定位元素(position 为 absolute 或 fixed)
  • 行内块元素(display: inline-block)
  • 表格单元格(display: table-cell,表格默认)
  • 弹性盒子(display: flex / inline-flex)
  • 网格布局(display: grid / inline-grid)
  • overflow 值为 hidden、auto、scroll(不为 visible)
  • display: flow-root(专门用于创建无副作用的 BFC)