1,在浮動元素後面增長<br/>
標籤;瀏覽器
<br/>
標籤有自帶的清除浮動屬性;code
2,在浮動元素後面增長一個清除浮動層;orm
<div> <div style="float:left"></div> <div style="float:left"></div> <div style="clear:both"></div> </div>
3,給浮動元素添加overflow:auto樣式;文檔
4,爲最後浮動元素設置以下樣式:it
/* 清理浮動 */ .clearfix:after { visibility:hidden; display:block; font-size:0; content:" "; clear:both; height:0; } .clearfix { zoom:1; } 其原理是,在「高級」瀏覽器中使用 :after 僞類在浮動塊後面加上一個非 display:none 的不可見塊狀內容來,並給它設置 clear:both 來清理浮動。在 ie6 和 7 中給浮動塊添加 haslayout 來讓浮動塊撐高並正常影響文檔流。
5,另外一種簡潔的辦法:table
.cf:before, .cf:after { content:""; display:table; } .cf:after { clear:both; } .cf { zoom:1; } 原理仍是同樣的。使用 :after 僞類來提供浮動塊後的 clear:both。不一樣的是,隱藏這個空白使用的是 display: table。而不是設置 visibility:hidden;height:0;font-size:0; 這樣的 hack。 值得注意的是這裏中的 :before 僞類。其實他是來用處理 top-margin 邊摺疊的,跟清理浮動沒有多大的關係。但由於浮動會建立 block formatting context,這樣浮動元素上的另而一元素上若是恰好有 margin-bottom 而這個浮動元素恰好有margin-top 的話,應該讓他們不折疊(雖然這種狀況並不常見)。