問:清除浮動的幾種方式,各自的優缺點
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 ...