BFC与多栏布局的理解

BFC理解:

首先要了解渲染过程文档流的概念。
BFC可以理解为脱离文档流新生成的一个子文档流。

可以将文档流理解成一个盒子,而BFC就是盒子内的盒子,浏览器渲染就是一个一个盒子的布局。

那么如何触发BFC?

触发BFC:

原理:使元素脱离正常文档流(让要触发BFC的浮起来,自己具备一个盒子)
1)float:float就”浮“起来了
2)display:表现为一个格子(盒子)类的;如inline-block等
3)overflow:除visible外的属性;如hidden理解为,有一个边框,超出就不显示了,是一个单独的盒子
4)position:绝对定位,absolute、fixed;理解为浮起来了

可见触发BFC的关键在于脱离文档流,使该元素”浮起来“

这是一条分界线--------------------------

那么如何理解平时的布局呢?

前面说了,布局可以理解成一个一个盒子摆放。
那么我们来理解一下三栏布局

<head>
        <style>
        	body{
                width: 300px;
            }
            #box1{
                height: 100px;
                width: 100px;
                float: left;
                background-color: pink;
            }
            #box2{
                height: 100px;
                width: 100px;
                float: right;
                background-color: red;
            }
            #box3{
                height: 200px;
                background-color: blue;
            }
        </style>
    </head>
    <body>
        <div id='box1'>Float左盒子</div>
        <div id='box2'>Float右盒子</div>
        <div id='box3'>Center中间盒子</div>
    </body>

在这里插入图片描述
这里需要提出一个新想法:float的BFC盒子漂浮起来,不会占用原文档流的位置(但实际情况仍是BFC盒子在文档流盒子同一层,可以理解为Float的BFC盒子为0*0大小),类似以下:
在这里插入图片描述
可见Center盒子会被覆盖,若改变

#box3{
                overflow: hidden;	//新增的,使其触发BFC
                height: 200px;
                background-color: blue;
            }

那么此时Center盒子也会”浮起来“
在这里插入图片描述
再看如果添加多一个正常盒子:

        <div id="box4">新盒子</div>

在这里插入图片描述
可见新盒子在文档流中是被上面的盒子”排布下来的“,所以印证前一段说的,实际BFC盒子没有物理上的分层而浮起来,只是助于理解。
关于Float的理解强推以下一篇blog:
https://blog.csdn.net/qq_36595013/article/details/81810219

文章就不码太长了,我个人对BFC的理解整体思路就是如此,平时写布局可以多加训练,慢慢就会更加理解BFC是何物

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值