BFC布局

Posted 炎泽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BFC布局相关的知识,希望对你有一定的参考价值。

我们常说的文档流分为普通流、浮动流与定位流三种。

FC(formatting context格式化上下文),指的是一块渲染区域,依靠渲染规则,决定其子元素如何布局及与其他元素的关系和作用

FC分为BFC、IFC、GFC和FFC,其中BFC(block formatting context)块级格式化上下文

BFC特点

1.内部的box会在垂直方向上,一个接一个地放置

2.box垂直方向的距离由margin决定,属于同一个bfc的两个box相邻的margin会发生重叠

3.每个box的左边,与包含box的box的左边相接触,即使存在float box

4.bfc的区域不会与float box重叠

5.bfc是一个隔离的独立容器,容器内的子元素不会影响外面的元素

6.计算高度时浮动元素也参与

 

BFC触发条件

1.根元素,即html

2.float不为none

3.position为absolute或fixed

4.display为inline-block、table-cell、table-caption、flex、inline-flex

5.overflow不为visible

 

常见应用

1.清除浮动元素

通过设置overflow:hidden 闭合浮动,这个不做赘述

2.margin叠加

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .up {
                width: 100px;
                height: 100px;
                background: red;
                margin: 50px;
            }
            .down {
                width: 100px;
                height: 100px;
                background: green;
                margin: 50px;
            }
        </style>
    </head>
    <body>
        <div class="up"></div>
        <div class="down"></div>
    </body>
</html>

由于up与down都处于html当中,所以默认margin叠加

使用div包裹其中一个,并将此div转化为BFC布局,则可实现叠加

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .up {
                width: 100px;
                height: 100px;
                background: red;
                margin: 50px;
            }
            .cont-down {
                overflow: hidden;
            }
            .down {
                width: 100px;
                height: 100px;
                background: green;
                margin: 50px;
            }
        </style>
    </head>
    <body>
        <div class="up"></div>
        <div class="cont-down">
            <div class="down"></div>
        </div>
        
    </body>
</html>

以上是关于BFC布局的主要内容,如果未能解决你的问题,请参考以下文章

BFC布局

理解css布局和BFC

理解css布局和BFC

布局中的BFC---重点是前言

html百分比布局缩放自适应

BFC布局与IFC布局以及普通文档流布局