BFC(Block Formatting Context)是CSS布局模型中的概念,它是一个独立的布局环境,可以包含浮动元素并防止其溢出到其它的容器中。BFC是一个块级元素的渲染区域,并且具有一定的布局规则,具体包括以下内容:

1. BFC内部的所有元素垂直布局,即一个元素的上边缘处于前一个元素的下边缘的正上方。
2. BFC区域不会与浮动元素重叠,会将其排除在外。
3. BFC区域的计算高度时会考虑其所有子元素的高度。
4. 满足BFC规则的元素内部可以形成一个新的BFC区域。

BFC的作用包括以下方面:

1. 清除浮动,防止父级元素不包含所有浮动元素的问题。
2. 防止Margin Collapse,当BFC包含相邻元素时,防止其外边距重叠。
3. 控制自身元素的布局。

示例代码:

// 创建BFC(设置overflow:hidden或者float属性)
.container {
  overflow: hidden;
}

// 清除浮动
.container::after {
  content: '';
  display: table;
  clear: both;
}

// 控制元素布局
.box {
  display: flow-root;
}