Skip to content

BFC

BFC,即块级格式化上下文(Block Formatting Context),是Web页面的可视CSS渲染的一部分,用于决定块级盒子的布局及浮动元素的交互规则。

创建BFC的条件

BFC可以通过以下方式之一创建:

  1. 根元素<html>)自然形成一个BFC。
  2. 浮动元素(元素的float不是none)。
  3. 绝对定位元素(元素的positionabsolutefixed)。
  4. displayinline-blocktable-cellsflex
  5. overflow的值不为visible的块元素。

BFC的特性和用途

BFC具有以下特性和用途:

  1. 内部的Box会在垂直方向,一个接一个地放置。
  2. Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠。
  3. **BFC的区域不会与float box重叠。**这个特性常用于清除元素的浮动,防止高度塌陷。
  4. **计算BFC的高度时,浮动元素也参与计算。**这意味着BFC可以包含浮动的元素(浮动元素不会脱离BFC的“边界”)。
  5. **BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然。**因此,使用BFC可以用于创建相互独立的布局区域。

应用场景举例

  1. 防止margin重叠:相邻的块级元素垂直排列时,它们之间的margin可能会重叠。通过将其中一个元素放入BFC中,可以避免这种重叠。
  2. 清除浮动:在浮动元素后面创建BFC可以包含浮动元素,防止父元素高度塌陷。
  3. 制作侧边栏:利用BFC不与浮动元素重叠的特性,可以制作内容与侧边栏布局。

BFC提供了一种HTML元素布局、定位及清除浮动的高级机制,是掌握CSS布局的重要概念之一。