网上看了很多文章,只想说一句话:“真的啥都没看懂”。以下是我个人的理解,有不对的地方可以提出。
在描述他们之间的区别之前,我们首先要了解一下什么是 BFC、IFC、GFC、FFC?
- 我们知道元素有内联元素、块级元素、行内块级元素,在页面上渲染时它们的定位,排列方式等都有所不同,就是因为它们根据内部的格式化上下文进行不同的渲染,即 BFC 和 IFC。后面 CSS3 新增了 grid 布局以及 flex 布局,所以也迎来了 GFC、FFC
分割线--------------------------------------------------------------------
下方的内容在网上找,基本上都是差不多的
BFC(Block formatting contexts):块级格式上下文
页面上的一个隔离的渲染区域,那么他是如何产生的呢?可以触发 BFC 的元素有 float、position、overflow、display:table-cell/ inline-block/table-caption ;BFC 有什么作用呢?比如说实现多栏布局
IFC(Inline formatting contexts):内联格式上下文
IFC 的 line box(线框)高度由其包含行内元素中最高的实际高度计算而来(不受到竖直方向的 padding/margin 影响)IFC 中的 line box 一般左右