BFC是 W3C CSS2.1 規(guī)范中的一個(gè)概念茎杂。它是頁面中的一塊渲染區(qū)域错览,并且有一套渲染規(guī)則,它決定了其子元素將如何定位煌往,以及和其他元素的關(guān)系和相互作用倾哺。
提問:為什么overflow:hidden,又可以解決清除浮動(dòng)刽脖,還可以解決外邊距塌陷羞海?
本質(zhì)是觸發(fā)了容器的BFC規(guī)則。
BFC特性:
(1)BFC就是頁面上的一個(gè)隔離的獨(dú)立容器曲管,容器里面的子元素不會(huì)影響到外面的元素却邓。反之也如此。
(2)計(jì)算BFC的高度時(shí)院水,浮動(dòng)元素也參與計(jì)算腊徙。
通俗一點(diǎn)來講简十,可以把 BFC 理解為一個(gè)封閉的大箱子,箱子內(nèi)部的元素?zé)o論如何翻江倒海撬腾,都不會(huì)影響到外部勺远。
怎么觸發(fā)一個(gè)BFC:
(1)浮動(dòng)元素 (元素的 float 不是 none)
(2)絕對(duì)定位元素 (元素具有 position 為 absolute 或 fixed)
(3)內(nèi)聯(lián)塊 (元素具有 display: inline-block)
(4)表格單元格 (元素具有 display: table-cell,HTML表格單元格默認(rèn)屬性)
(5)表格標(biāo)題 (元素具有 display: table-caption, HTML表格標(biāo)題默認(rèn)屬性)
(6)具有overflow 且值不是 visible 的塊元素时鸵,
(7)display: flow-root
(8)column-span: all 應(yīng)當(dāng)總是會(huì)創(chuàng)建一個(gè)新的格式化上下文,即便具有 column-span: all 的元素并不被包裹在一個(gè)多列容器中