Open renjie-run opened 4 years ago
官方定义
BFC(Block formatting context)直译为“块级格式化上下文"。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。 BFC 是一个独立的布局环境,其中的元素布局不受外界的影响,并且在一个 BFC 中,块级元素与行内元素都会垂直的沿着其父元素的边框排列。
或者说是使用 BFC 可以解决哪些棘手的问题。根据 BFC 的布局规则,就能发现它的用途。
对发生外边距重叠的两个相邻元素构建一个 BFC 即可。
在一个容器中,如果子元素进行了浮动处理,那么由于该子元素脱离了文档流,那么这个容器的高度没有能撑起高度的子元素就会发生塌陷现象。 因为计算 BFC 的高度时,内部浮动的元素也会参与计算,那么此时可以使用 BFC 来解决该问题。
这里不讲文字环绕如何产生的了。 因为在 BFC 中,每一个盒子的左外边缘会触碰到容器,所以此时如果对环绕的文字构建一个 BFC 就能解决这个问题了。
什么是 BFC
官方定义
BFC 的布局规则
如何创建一个 BFC
BFC 应用场景
或者说是使用 BFC 可以解决哪些棘手的问题。根据 BFC 的布局规则,就能发现它的用途。
防止外边距重叠
对发生外边距重叠的两个相邻元素构建一个 BFC 即可。
防止高度塌陷
在一个容器中,如果子元素进行了浮动处理,那么由于该子元素脱离了文档流,那么这个容器的高度没有能撑起高度的子元素就会发生塌陷现象。 因为计算 BFC 的高度时,内部浮动的元素也会参与计算,那么此时可以使用 BFC 来解决该问题。
防止文字环绕
这里不讲文字环绕如何产生的了。 因为在 BFC 中,每一个盒子的左外边缘会触碰到容器,所以此时如果对环绕的文字构建一个 BFC 就能解决这个问题了。