清除浮動的幾種方式,各自的優缺點

2022-09-14 12:39:11 字數 2023 閱讀 6337

問:清除浮動的幾種方式,各自的優缺點

1.使用空標籤清除浮動clear:both。

原理:新增乙個空div,利用css提高的clear:both清除浮動,讓父級div能自動獲取到高度

優點:通俗易懂,容易掌握

缺點:會新增很多無意義的空標籤,有違結構與表現的分離,在後期維護中將是噩夢

2.父級div定義overflow:hidden

原理:必須定義width或zoom:1,同時不能定義height,使用overflow:hidden時,瀏覽器會自動檢查浮動區域的高度

優點:簡單,**少,瀏覽器支援好

缺點:不能和position配合使用,因為超出的尺寸的會被隱藏

3、父級div定義偽類:after和zoom(用於非ie瀏覽器)

原理:ie8以上和非ie瀏覽器才支援:after,原理和方法1有點類似,zoom(ie轉有屬性)可解決ie6,ie7浮動問題

缺點:**多,要兩句**結合使用,才能讓主流瀏覽器都支援

建議:推薦使用,建議定義公共類,以減少css**

1) display:block 使生成的元素以塊級元素顯示,佔滿剩餘空間;

2) height:0 避免生成內容破壞原有布局的高度。

3) visibility:hidden 使生成的內容不可見,並允許可能被生成內容蓋住的內容可以進行點選和互動;

4)通過 content:"."生成內容作為最後乙個元素,至於content裡面是點還是其他都是可以的,例如oocss裡面就有經典的 content:"******************************xx",有些版本可能content 裡面內容為空,不推薦這樣做的,firefox直到7.0 content:」" 仍然會產生額外的空隙;

5)zoom:1 觸發ie haslayout。

通過分析發現,除了clear:both用來清除浮動的,其他**無非都是為了隱藏掉content生成的內容,這也就是其他版本的閉合浮動為什麼會有font-size:0,line-height:0。

偽類after

4、父級div定義height

原理:父級div手動定義height,就解決了父級div無法自動獲取到高度的問題。

優點:簡單,**少,容易掌握

缺點:只適合高度固定的布局,要給出精確的高度,如果高度和父級div不一樣時,會產生問題

5、父級div定義overflow:auto

原理:必須定義width或zoom:1,同時不能定義height,使用overflow:auto時,瀏覽器會自動檢查浮動區域的高度

優點:簡單,**少,瀏覽器支援好

缺點:內部寬高超過父級div時,會出現滾動條

清除浮動的方式以及各自的優缺點

在最後乙個浮動元素的後面新加乙個標籤如 並在其css樣式中設定clear both 1.優點 簡單,通俗易懂,寫少量 相容性好 2.缺點 額外增加無語義html元素,語義化差,後期維護成本大 1.優點 簡單,寫少量 容易掌握 2.缺點 不夠靈活,只適用於高度固定的布局 如給父元素設定overflow...

清除浮動的幾種方式及優缺點總結

一 額外標籤法 在最後乙個浮動元素的後面新加乙個標籤如 並在其css樣式中設定clear both 優點 簡單,通俗易懂,寫少量 相容性好 缺點 額外增加無語義html元素,語義化差,後期維護成本大 二 給父級設定高度 優點 簡單,寫少量 容易掌握 缺點 不夠靈活,只適用於高度固定的布局 三 觸發父...

浮動的優缺點,如何清除浮動?

元素浮動以後可以想做或向右移動,直到它的外邊緣碰到包含它的框或者另外乙個浮動元素的邊框為止。元素浮動以後會脫離正常的文件流,所以文件的普通流中的框就變現的好像浮動元素不存在一樣。浮動的好處 這是乙個浮動的demo charset utf 8 清除浮動title parent fstyle head ...