您的位置 首页 技术

什么是BFC?有什么用?

BFC (推荐教程:css快速入门) 即块格式化上下文(block formatting context) 是页面 CSS 视觉渲染的一部分。它是用于决定块盒子的布局及浮动相互影响…

BFC

(推荐教程:css快速入门)

即块格式化上下文(block formatting context) 是页面 CSS 视觉渲染的一部分。它是用于决定块盒子的布局及浮动相互影响的一个区域。

我的理解:

BFC是一个环境,在这个环境中的元素不会影响到其他环境中的布局,也就是说,处于不同BFC中的元素是不会互相干扰的。

作用:

1、阻止外边距折叠

两个相连的块级元素在垂直上的外边距会发生叠加,有些把这种情况看作是bug,但我觉得可能是出于段落排版的考虑,为了令行间距一致才有的这一特性。我们先来看看例子:

7506186e5f78c1ddc403c676427937f.png

*{margin: 0px;padding: 0px}p {    color: red;    background: #eee;    width: 100px;    height: 100px;    line-height: 100px;    text-align: center;    margin: 10px;    border: solid 1px red;}

从上面可以看出,我们给两个p元素都设置margin,但中间的间距却发生了折叠。然后举个BFC的例子:

.ele{    overflow: hidden;    border: solid 1px red;}

35d98912fd2611c6cbb21a07d1ea16e.png

从上面可以看出,我们为每个div元素设置overflow的值为hidden,产生一个块级格式上下文,因为外边距不会相互重叠。

2、BFC可以包含浮动的元素

4f46b2949b3b67fcb1d7dbefb63ffbc.png

*{margin: 0px;padding: 0px}.floatL{    float: left;    width: 100px;    height: 100px;    background-color: red;    text-align: center;    line-height: 100px;}.box{    border: 1px solid red;    width: 300px;    margin: 100px;    padding: 20px;}.BFC{    overflow: hidden;    *zoom: 1;}

从运行结果可以看出,如果块级元素里面包含着浮动元素会发生高度塌陷,但是将它变成一个BFC后,BFC在计算高度时会自动将浮动元素计算在内。

3、BFC可以阻止元素被浮动元素覆盖

bb2ecc32f4ad56b56909c04a95a94bf.png

*{margin: 0px; padding: 0px}.box1{    width: 100px;    height: 100px;    line-height: 100px;    text-align: center;    background-color: rgba(0, 0, 255, 0.5);    border: 1px solid #000;    float: left;}.box2{    width: 200px;    height: 200px;    line-height: 100px;    text-align: center;    background-color: rgba(255, 0, 0, 0.5);    border: 1px solid #000;    /* overflow: hidden; */    /* *zoom: 1; */}

从上面看出,当元素浮动后,会与后面的块级元素产生相互覆盖。那怎么解决这个问题,只要为后面的元素创建一个BFC。添加overflow属性到box2上。

overflow: hidden;*zoom: 1;

这样子阻止了浮动元素重叠的问题。

以上就是什么是BFC?有什么用?的详细内容,更多请关注24课堂在线网其它相关文章!

本文来自网络,不代表24小时课堂在线立场,转载请注明出处:https://www.24ketang.cn/88271.html

为您推荐

返回顶部