BFC浅析

在普通流中的盒子会参与一种格式上下文,这个盒子可能是块盒也可能是行内盒,但不可能同时是块盒又是行内盒。块级盒参与块级格式上下文(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,则不塌陷

```

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,854评论 1 92
  • 先前在学习CSS float时,有同学提到了BFC这个词,作为求知好问的好学生,哪里不懂查哪里,那么今天就来研究一...
    这名字真不对阅读 6,594评论 3 19
  • relative:生成相对定位的元素,通过top,bottom,left,right的位置相对于其正常位置进行定位...
    zx9426阅读 1,005评论 0 2
  • 原书名为:《生物信息学课程导引-生物信息学研究生暑期学校讲义》,是一本张学工写的英文版的生物信息学的入门书籍,涵盖...
    宇宙独一无二的我阅读 1,409评论 2 9
  • 张小胖八个月大的时候,姥姥和我俩人在北京带他。 那时候张小胖的猴性还没原形毕露,总是流着口水的嘴角里黏着一只手指头...
    张小胖教我的那些事阅读 408评论 0 1