BFC块级格式化上下文

12/7/2021 CSS

# BFC (Block Formatting Context)

BFC,即块级格式化上下文。BFC的主要功能是创建一个隔离的渲染区域,其中内部元素的布局不会受到外部或相邻元素的影响。它能解决一些常见的布局问题,如浮动元素的包含和边距塌陷。

# BFC的特点

  • 一个隔离的容器,其中的内部元素不会影响外部的元素。
  • 容器能自动适应并包含浮动的子元素,不会影响其自身的高度。
  • 可以防止边距塌陷,即使在父子元素间也是如此。
  • 明确了浮动元素与非浮动元素之间的布局关系。

# 如何触发BFC

  1. float属性设置为leftright
  2. position属性设置为absolutefixed
  3. overflow属性设置为hiddenautoscroll
  4. display属性设置为inline-blocktable-celltable-captionflexinline-flexgrid
  5. 使用标准的块级元素,如divph1h6ulolli等,它们默认生成BFC,但通常无需额外设置。
  6. 使用display: flow-root,这是专为创建BFC而设的属性值。

# 示例代码

.bfc-element {
  /* 通过将overflow设置为非visible值来触发BFC */
  overflow: auto;

  /* 或者使用其他方式 */
  /* float: left; */
  /* position: absolute; */
  /* display: flex; */
}