BFC浅析

作者: 出云月 | 来源:发表于2017-09-06 15:38 被阅读0次

    在普通流中的盒子会参与一种格式上下文,这个盒子可能是块盒也可能是行内盒,但不可能同时是块盒又是行内盒。块级盒参与块级格式上下文(BFC),行内级盒参与行级格式上下文(IFC)。此章重点讲BFC


    BFC(Block Formatting Context)叫做“块级格式化上下文”。BFC的布局规则如下:

    1.内部的盒子会在垂直方向,一个个地放置;

    2.盒子垂直方向的距离由margin决定,属于同一个BFC的两个相邻Box的上下margin会发生重叠;

    3.每个元素的左边,与包含的盒子的左边相接触,即使存在浮动也是如此;

    4.BFC的区域不会与float重叠;

    5.BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之也如此;

    6.计算BFC的高度时,浮动元素也参与计算。


    哪些元素会产生BFC。

    1.根元素;

    2.float的属性不为none;

    3.position为absolute或fixed;

    4.display为inline-block,table-cell,table-caption,flex;

    5.overflow不为visible


    那么举一些常见的例子

    1. 常见的左右布局,可以用float,可以用定位等方法

    ```

    在用float的时候,右边的div需要使用marginleft,如果不使用,则会与左边浮动区域重合但是见上面的第四条,BFC区域不会与浮动区域重合,所以只要给右边的div加上overflow:hidden就可以实现左右布局

    ```

    2.子布局是浮动div,导致父布局的高度撑不开?

    ```

    参照第六条,计算BFC高度,浮动元素也参与计算,所以只要加上overflow:hidden就可以让父布局撑开

    ```

    3.margin重叠

    ```

    上下两个div,margin重叠,怎么办?

    当然可以自己写的时候注意

    同属于一个BFC盒子,则margin重叠,那么不同属于一个BFC盒子尼?

    所以让下面的盒子外包一个盒子,加上overflow:hidden,则不塌陷

    ```

    相关文章

      网友评论

        本文标题:BFC浅析

        本文链接:https://www.haomeiwen.com/subject/ohcvjxtx.html