BFC

BFC 即 Block Formatting Contexts (塊級格式化上下文)

官方文檔到中是這么介紹的:一個 BFC 區(qū)域包含創(chuàng)建該上下文元素的所有子元素,但是不包括創(chuàng)建了新的BFC的子元素的內(nèi)部元素,BFC 是一塊塊獨(dú)立的渲染區(qū)域,可以將 BFC 看成是元素的一種屬性,擁有了這種屬性的元素就會使他的子元素與世隔絕,不會影響到外部其他元素

具有 BFC 特性的元素可以看做是隔離了的獨(dú)立容器,容器里面的元素不會在布局上影響到外面的元素,并且 BFC 具有普通容器所沒有的的一些特性。通俗一點(diǎn)來講,它的作用是創(chuàng)建一個獨(dú)立的渲染區(qū)域,使容器內(nèi)的元素和容器外的元素的樣式不會相互影響

怎樣使一個元素變成 BFC 區(qū)域
  • 1、根元素 <html> 或其他包含它的元素:根元素本身就是 BFC,而其他元素如果包含根元素,則它們也會成為 BFC
  • 2、定位元素:元素的 position 屬性設(shè)置為 absolute 或 fixed,這樣的元素會形成 BFC
  • 3、浮動元素:元素的 float 屬性設(shè)置為非 none 的值,如 left 或 right,這樣的元素會形成BFC
  • 4、具有 overflow 屬性的塊元素:如果塊元素的 overflow 屬性值不是 visible,例如設(shè)置為hidden、scroll 或 auto,這樣的元素會形成 BFC
  • 5、display 的值為 inline-block、table-cell、table-caption 或者 flex、inline-flex
可以解決的問題

1、解決外邊距的塌陷問題(垂直塌陷),兩個盒子都有 100 的外邊距,正常應(yīng)該是 200 的距離,實際是 100
2、解決包含塌陷,子元素加 margin-top 可能會帶著父元素一起跑
3、清除浮動,因為子節(jié)點(diǎn)浮動,造成父節(jié)點(diǎn)高度塌陷
4、阻止標(biāo)準(zhǔn)流元素被浮動元素覆蓋

IFC(Inline formatting contexts):內(nèi)聯(lián)格式上下文
GFC(GrideLayout formatting contexts):網(wǎng)格布局格式化上下文
FFC(Flex formatting contexts):自適應(yīng)格式上下文
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容