前言
overflow: hidden
常用在隱藏溢出的範圍,也就是子層高度大於複層高度時會將超出部分隱藏。
然而,還有另一個用途就是清除包含子層的浮動。
示範模板
1 | <body> |
1 | .parent { |
你沒看錯,當加了 overflow: hidden
後,竟然就可以清除浮動了!!這是什麼妖術阿?!
解析
BFC
BFC (Block Formatting Context),塊格式化上下文
MDN-塊格式上下文
塊格式化上下文包含創建它的元素內部的所有內容
浮動定位和清除浮動時只會應用於同一個 BFC 內的元素。浮動不會影響其它 BFC 中元素的佈局,而清除浮動只能清除同一 BFC 中在它前面的元素的浮動。
外邊距折疊(Margin collapsing)也只會發生在屬於同一 BFC 的塊級元素之間。
BFC 創建
請參考 MDN 文件即可,這裡就不多寫了。
應用
EX: 遇到需要清除浮動的情況產生時,這時候只需要建立一個 BFC 來包含這個浮動即可。
EX: 外邊距塌陷,此情況常發生在同一層的兩元素都有 margin-top 及 margin-bottom 時,當重疊時則會發現 margin 發生合併,這是因為兩者都同屬一個 BFC,此時只需要將兩者分離,並創建一個 BFC,就可以解決問題囉!!