renjie-run / blog

Personal Blog
2 stars 0 forks source link

CSS - 探究 BFC #7

Open renjie-run opened 4 years ago

renjie-run commented 4 years ago

什么是 BFC

官方定义

BFC(Block formatting context)直译为“块级格式化上下文"。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。 BFC 是一个独立的布局环境,其中的元素布局不受外界的影响,并且在一个 BFC 中,块级元素与行内元素都会垂直的沿着其父元素的边框排列。

BFC 的布局规则

如何创建一个 BFC

BFC 应用场景

或者说是使用 BFC 可以解决哪些棘手的问题。根据 BFC 的布局规则,就能发现它的用途。

防止外边距重叠

对发生外边距重叠的两个相邻元素构建一个 BFC 即可。

防止高度塌陷

在一个容器中,如果子元素进行了浮动处理,那么由于该子元素脱离了文档流,那么这个容器的高度没有能撑起高度的子元素就会发生塌陷现象。 因为计算 BFC 的高度时,内部浮动的元素也会参与计算,那么此时可以使用 BFC 来解决该问题。

防止文字环绕

这里不讲文字环绕如何产生的了。 因为在 BFC 中,每一个盒子的左外边缘会触碰到容器,所以此时如果对环绕的文字构建一个 BFC 就能解决这个问题了。