簡潔的CSS清除浮動方式 支付寶就使用這樣的方式

2022-03-08 16:18:00 字數 865 閱讀 5724

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

css code

複製內容到剪貼簿

/* 清理浮動 */

.clearfix:after    

.clearfix   

其原理是,在「高階」瀏覽器

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

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

css code

複製內容到剪貼簿

.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 等等。但考慮到相容問題和語義化的問題,一般我們都會使用如下 來清理浮動。複製 如下 清理浮動 clearfix after clearfix 其原理是,在 高階 瀏覽...

更簡潔的 CSS 清理浮動方式

清理浮動有很多種方式,像使用 br 標籤自帶的 clear 屬,使用元素的 overflow,使用空標籤來設定 clear both 等等。但考慮到相容問題和語義化的問題,一般我們都會使用如下 來清理浮動。清理浮動 clearfix after clearfix 其原理是,在 高階 瀏覽器中使用 a...

更簡潔的 CSS 清理浮動方式

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