BFC 的作用

BFC 的定义:

  • 对元素设置 float, absolute, inline-block (table-cell, table-caption)
  • 对块级元素设置 overflow: hidden | auto;

后,这些元素不是块级元素,但会有块级特性。即形成了BFC(块级格式上下文)。
  形成BFC后,该区域就是一个独立的空间,可以和其他容器之间作区分。
  同一个BFC中,元素布局就会像普通文档流一样,从上到下,从左到右;浮动元素的布局就按照浮动元素特性的布局。当然同一个BFC内会存在外边距合并
  但是两个BFC内的元素不会相互影响,不会有外边距合并。
形成 BFC 主要可以解决由于浮动导致父元素高度塌陷的问题。

  • 1.通过形成BFC来解决
    html代码
<div class="ct">
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
</div>

对应的CSS

    .ct{
        border: 1px solid red;
    }
    .box{
        float: left;
        width: 50px;
        height: 50px;
        background-color: green;
        margin: 20px;
    }

形成 BFC 后:

    .ct{
        border: 1px solid red;
        position: absolute;
/*或者
        float: left | right;
        display: inline-block;/*table-cell|table-caption*/
        overflow: hidden | auto;
*/
    }
    .box{
        float: left;
        width: 50px;
        height: 50px;
        background-color: green;
        margin: 20px;
    }

形成BFC可以解决浮动导致的父元素高度塌陷问题,但是父元素本身也会因为CSS设置,形成特定的特性(如浮动,绝对定位等)。

  • 2.还可以通过清除浮动来解决该问题。
    .ct{
        border: 1px solid red;
    }
    .ct:after{
        content: '';
        clear: both;
        display: block;/*必须是block*/
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 在CSS当中,相...
    dengpan阅读 3,709评论 0 0
  • 1.在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 概念:在CSS当...
    饥人谷_任磊阅读 4,032评论 0 3
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 1. 在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 外边距合并:外...
    进击的阿群阅读 4,516评论 1 2
  • 初学CSS时,我们学到很多有意思的CSS规则,比如外边距塌陷,还有浮动元素的一些特性等,其实这些规则背后都是BFC...
    爆裂边缘阅读 11,155评论 0 10