bfc理解及应用

bfc 是盒模型布局的css渲染模式。属于正常文档流。

首先BFC是一个名词,是一个独立的布局环境,我们可以理解为一个箱子(实际上是看不见摸不着的),箱子里面物品的摆放是不受外界的影响的。转换为BFC的理解则是:BFC中的元素的布局是不受外界的影响(我们往往利用这个特性来消除浮动元素对其非浮动的兄弟元素和其子元素带来的影响。)并且在一个BFC中,块盒与行盒(行盒由一行中所有的内联元素所组成)都会垂直的沿着其父元素的边框排列。

浮动,绝对定位,inline-blocks,table-cells,table-captions和overflow不为visible的元素都将创建一个bfc(block Formatting context)块级格式化上下文。

bfc导致的问题

  1. 外边距折叠(padding margin折叠问题)。同属一个bfc的元素会产生这样的问题,克服这个问题,创造一个新的bfc就好了

    <div class="container"> 
        <p>Sibling 1</p> 
        <p>Sibling 2</p> 
        <div class="newBFC"> 
            <p>Sibling 3</p> 
        </div> 
    </div>
    

    css

    .container { background-color: red; overflow: hidden; /* creates a block formatting context */ } 
    
    p { margin: 10px 0; background-color: lightgreen; } 
    
    .newBFC { overflow: hidden; /* creates new block formatting context */ }
    
  2. 清除浮动,子元素浮动,父元素失去高度。用bfc来包裹浮动。overflow:hidden

  3. 清除文字环绕效果

    <div class="container"> 
        <div class="floated">Floated div</div>
        <div class='bfc'> 
            <p>Quae hic ut ab perferendis sit quod architecto,dolor debitis quam rem provident aspernatur tempora expedita.Quae hic ut ab perferendis sit quod architecto,dolor debitis quam rem provident aspernatur tempora expedita.Quae hic ut ab perferendis sit quod architecto,dolor debitis quam rem provident aspernatur tempora expedita.
            </p>
        </div> 
    </div>
    
    
    
    .floated{
      float:left;
      width:100px;
      height:50px;
      background:#ccc;
    }
    .bfc{
      overflow:hidden;
    }
    
  4. 多列布局中,取整可能会把元素挤到下一行.
    具体应用看这里

参考资料
w3cplus
bfc理解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92
  • 先前在学习CSS float时,有同学提到了BFC这个词,作为求知好问的好学生,哪里不懂查哪里,那么今天就来研究一...
    这名字真不对阅读 6,582评论 3 19
  • 什么是BFC BFC全称是Block Formatting Context,即块格式化上下文。它是CSS2.1规范...
    陌客百里阅读 538评论 3 4
  • 1.解决margin叠加问题 三P每个p之间的距离为50px,发生了外边距叠加。 要解决这个叠加问题即让每个P之间...
    岁月帮凶ds阅读 516评论 1 0
  • 转载自(http://web.jobbole.com/83274/) BFC BFC全称是Block Format...
    居客侠阅读 2,163评论 0 20