对BFC规范(块级格式化上下文:block formatting context)的理解?

BFC是 W3C CSS2.1 规范中的一个概念。它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。



提问:为什么overflow:hidden,又可以解决清除浮动,还可以解决外边距塌陷?

本质是触发了容器的BFC规则。

BFC特性:

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

(2)计算BFC的高度时,浮动元素也参与计算。


通俗一点来讲,可以把 BFC 理解为一个封闭的大箱子,箱子内部的元素无论如何翻江倒海,都不会影响到外部。


怎么触发一个BFC:

(1)浮动元素 (元素的 float 不是 none)

(2)绝对定位元素 (元素具有 position 为 absolute 或 fixed)

(3)内联块 (元素具有 display: inline-block)

(4)表格单元格 (元素具有 display: table-cell,HTML表格单元格默认属性)

(5)表格标题 (元素具有 display: table-caption, HTML表格标题默认属性)

(6)具有overflow 且值不是 visible 的块元素,

(7)display: flow-root

(8)column-span: all 应当总是会创建一个新的格式化上下文,即便具有 column-span: all 的元素并不被包裹在一个多列容器中

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

推荐阅读更多精彩内容