BFC(块级格式化上下文)

在官方文档到中,是这么介绍BFC的。

A block formatting context contains everything inside of the element creating it that is not also inside a descendant element that creates a new block formatting context.

简单来说,BFC就是包含本身子元素但是不包含子元素的子元素的块级上下文。

<div class="box1" id="HM_bfc1">
    <div class="box2"></div>
    <div class="box3"></div>
    <div class="box4"></div>
    <div class="box5" id="HM_bfc2">
        <div class="box6"></div>
        <div class="box7"></div>
        <div class="box8"></div>
    </div>
</div>

#HM_bfc1是一块BFC区域,这块区域包含了box2、box3、box4、box5,也就是所有#HM_bfc1的子元素,但是不包含box6,7,8;而HM_bfc2创建了第二个BFC,里面包含了box6,7,8;

两个BFC是相对独立互不影响的,可以利用这一点来解决一些样式问题,比如边框塌陷,还可以用来解决浮动产生的影响。

BFC触发条件:

·body根元素

·设置浮动,不包括none

·设置定位,absoulte或者fixed

·行内块显示模式,inline-block

·设置overflow,即hidden,auto,scroll

·表格单元格,table-cell

·弹性布局,flex

(满足一个即可)

posted @ 2022-04-19 10:56  妄欢  阅读(69)  评论(0编辑  收藏  举报