本文摘自PHP中文网,作者V,侵删。
BFC
(推荐教程:css快速入门)
即块格式化上下文(block formatting context) 是页面 CSS 视觉渲染的一部分。它是用于决定块盒子的布局及浮动相互影响的一个区域。
我的理解:
BFC是一个环境,在这个环境中的元素不会影响到其他环境中的布局,也就是说,处于不同BFC中的元素是不会互相干扰的。
作用:
1、阻止外边距折叠
两个相连的块级元素在垂直上的外边距会发生叠加,有些把这种情况看作是bug,但我觉得可能是出于段落排版的考虑,为了令行间距一致才有的这一特性。我们先来看看例子:
1 2 3 4 5 6 7 8 9 10 11 |
|
从上面可以看出,我们给两个p元素都设置margin,但中间的间距却发生了折叠。然后举个BFC的例子:
1 2 3 4 |
|
从上面可以看出,我们为每个div元素设置overflow的值为hidden,产生一个块级格式上下文,因为外边距不会相互重叠。
2、BFC可以包含浮动的元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
从运行结果可以看出,如果块级元素里面包含着浮动元素会发生高度塌陷,但是将它变成一个BFC后,BFC在计算高度时会自动将浮动元素计算在内。
3、BFC可以阻止元素被浮动元素覆盖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
从上面看出,当元素浮动后,会与后面的块级元素产生相互覆盖。那怎么解决这个问题,只要为后面的元素创建一个BFC。添加overflow属性到box2上。
1 2 |
|
这样子阻止了浮动元素重叠的问题。
以上就是什么是BFC?有什么用?的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《bfc》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者