1. 程式人生 > >清除浮動的方法

清除浮動的方法

display auto 優點 eight 支持 hid 瀏覽器兼容 產生 idt

1.給父級div設置heigh

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

   優點:簡單,代碼少

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

   不建議使用只是建議高度固定的布局時使用

2.在結尾處加空div標簽clear:both

  原理:添加一個空div,利用clear:both清除浮動,讓父級div能自動湖區高度

   優點:簡單代碼少,瀏覽器支持好

   缺點:很多初學者不理解原理,如果頁面浮動多就要增加很多空div,讓結構復雜

   不推薦使用,這是以前主流的清除浮動的方法

3.父級div定義偽類:after 和zoom

  原理:IE8以上和非IE瀏覽器才支持:after,原理和方法2類似,zoom(IE專有屬性),可解決ie6,ie7的浮動問題

優點:瀏覽器支持好,不容易出怪問題

  缺點:代碼多, 很多人不理解原理,要兩句代碼結合使用,才能讓主流瀏覽器支持

  建議使用,建議定義公共類,增加可重復利用性

4.父級div定義overflow:hidden

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

優點:簡單,代碼少,瀏覽器支持好

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

  只推薦沒有使用position或duioverflow:hidden理解比較深的時候使用

5.父級div定義overflow:auto

原理:必須定義width或zoom:1,同時不能定義height,使用overflow:auto時,瀏覽器會自動檢查浮動區域的高度
優點:簡單,代碼少,瀏覽器支持好
 缺點:內部寬高超過父級div時,會出現滾動條。
不推薦使用,如果你需要出現滾動條或者確保你的代碼不會出現滾動條就使用吧。

6.父級div也一起浮動

  原理:所有代碼一起浮動,就變成了一個整體
優點:沒有優點
缺點:會產生新的浮動問題。

建議:不推薦使用,只作了解。

7.結尾處加br標簽clear:both

原理:父級div定義zoom:1來解決IE浮動問題,結尾處加br標簽clear:both

8.替代浮動方法要浮動的元素設置display:inline-block

  優點:整體代碼簡潔了很多,這是他的價值所在
  缺點:有瀏覽器兼容問題;只有特定的場合適用,像水平菜單條之類,布局之類,並不適合文字環繞 圖片這些真正需要float的場合;元素間的純空白會造成占位

清除浮動的方法