BFC是什么?

197 阅读1分钟

BFC 是什么?

BFC代表"块级格式化上下文"(Block Formatting Context)。它是CSS中的一个概念,用于描述块级元素如何布局、定位以及与其他元素互动。 BFC是一个独立的渲染区域,它具有一组规则,决定了内部块级元素如何布局和相互影响。每个BFC都是独立的,内部元素的布局不会影响到外部元素。

块级格式化上下文,和块级标签不是一个东西。 BFC相当于一个完全独立的空间,让空间里面的元素不影响到外边的元素。

创建BFC的条件

  1. 浮动元素(float属性不为none)。
  2. 绝对定位元素(position: absolute/fixed)。
  3. display属性值为inline-block、table-cell、table-caption、flex、或grid的元素。
  4. overflow属性值不为visible的元素(例如,overflow: auto或overflow: hidden)。

BFC具有的特性和行为

  1. 内部的块级元素在垂直方向上一个接一个地排列。
  2. 块级元素在BFC内部不会与浮动元素重叠。
  3. BFC区域的边缘会包含其所有子元素的边距。
  4. BFC可以阻止margin重叠现象。
  5. BFC在某些情况下可以包含浮动元素,避免父元素塌陷。

应用场景

  1. 清除浮动(使用overflow: auto或overflow: hidden来创建新的BFC,避免父元素高度塌陷)。
  2. 防止边距重叠。
  3. 创建多栏布局(使用float、flex或grid等属性创建多列)。
  4. 控制文本环绕元素。

参考资料
10 分钟理解 BFC 原理
CSS layout入门 区块格式化上下文