更簡潔的 CSS 清理浮動方式

2021-09-01 09:35:01 字數 728 閱讀 7397

清理浮動有很多種方式,像使用 br 標籤自帶的 clear 屬,使用元素的 overflow,使用空標籤來設定 clear:both 等等。但考慮到相容問題和語義化的問題,一般我們都會使用如下**來清理浮動。

/* 清理浮動 */.clearfix:after .clearfix

其原理是,在「高階」瀏覽器中使用 :after 偽類在浮動塊後面加上乙個非 display:none 的不可見塊狀內容來,並給它設定 clear:both 來清理浮動。在 ie6 和 7 中給浮動塊新增 haslayout 來讓浮動塊撐高並正常影響文件流。

上面的**應該是現在主流的清理浮動方式。現在支付寶就使用這樣的方式。而現在,nicolas gallagher 給出了乙個更簡潔的方案:

.cf:before, .cf:after .cf:after .cf

原理還是一樣的。使用 :after 偽類來提供浮動塊後的 clear:both。不同的是,隱藏這個空白使用的是 display: table。而不是設定 visibility:hidden;height:0;font-size:0; 這樣的 hack。

值得注意的是這裡中的 :before 偽類。其實他是來用處理 top-margin 邊摺疊的,跟清理浮動沒有多大的關係。但因為浮動會建立 block formatting context,這樣浮動元素上的另而一元素上如果剛好有 margin-bottom 而這個浮動元素剛好有margin-top 的話,應該讓他們不摺疊(雖然這種情況並不常見)。

更簡潔的 CSS 清理浮動方式

清理浮動有很多種方式,像使用 br 標籤自帶的 clear 屬,使用無素的 overflow,使用空標籤來設定 clear both 等等。但考慮到相容問題和語義化的問題,一般我們都會使用如下 來清理浮動。view source print 清理浮動 clearfix after clearfix ...

CSS清理浮動

發表於2011年2月1日 由sivan 文章目錄 前言清理浮動的方法 使用帶有clear屬性的空元素 使用css的 after偽元素 使用css的overflow屬性進行怪異處理 給浮動元素的容器新增浮動 使用鄰接元素清理 其他方法 我的解決方案 綜合運用方案 一勞永逸方案 小結 update 20...

CSS 清理浮動 clear屬性

文章 雖然浮動可以便於頁面布局,但同時會產生一些問題,也就是常說的 浮動元素最常見的缺陷是 父元素的高度塌陷和影響兄弟元素的位置。首先,看看父元素的高度塌陷。假設有乙個容器,其中兩個子元素,乙個子元素向左浮動,乙個子元素向右浮動。如下 box2 圖5 29 浮動導致容器高度塌陷 這種塌陷會影響 甚至...