CSS中的BFC

2019-09-14  本文已影响0人  beatzcs

BFC定义

BFC(Block Formatting Context)格式化上下文,是Web页面中盒模型布局的CSS渲染模式,指一个独立的渲染区域,或者说是一个隔离的独立容器。

BFC的形成条件

BFC的特性

特性分析

1、BFC中的盒子对齐

<div class="container">
  <div class="box1"></div>
  <div class="box2"></div>
  <div class="box3"></div>
</div>
.container {
    position: absolute;  /* 创建一个BFC环境*/
    height: auto;
    background-color: #eee;
}

内部的Box会在垂直方向上一个接一个的放置。

2、外边距折叠
在常规文档流中,两个兄弟盒子之间的垂直距离是由他们的外边距所决定的,但不是他们的两个外边距之和,而是以较大的为准。那么怎么让垂直外边距不折叠呢?

bfc就是页面上的一个独立容器,容器里面的子元素不会影响外面元素,同样外面的元素不会影响到BFC内的元素。所以就让兄弟盒子中的任一个处于另一个BFC中就行了。

<div class="container">
    <div class="wrapper">
        <div class="box1"></div>
    </div>
    <div class="box2"></div>
</div>
.wrapper {
    overflow: hidden;  /* 创建一个BFC环境*/
}

3、不被浮动元素覆盖
浮动的盒子会遮盖下面的盒子,但是下面盒子里的文字是不会被遮盖的,文字反而还会环绕浮动的盒子。这也是一个比较有趣的特性。可以用BFC来防止字体环绕。

.left {
    float: left;
    width: 100px;
    height: 100px;
    background-color: yellow;
}

p {
    background-color: green;
    /* overflow: hidden; */
}
字体环绕.png

4、BFC 可以包含浮动的元素(清除浮动)
正常情况下,浮动的元素会脱离普通文档流,使父元素高度坍塌。即外层的div会无法包含内部浮动的div。
但如果我们触发外部容器的BFC,根据BFC规范中的第4条:计算BFC的高度时,浮动元素也参与计算,那么外部div容器就可以包裹着浮动元素。

更多文章:
CSS深入理解流体特性和BFC特性下多栏自适应布局
CSS中的BFC详解

上一篇 下一篇

猜你喜欢

热点阅读