前言
其實在CSS中的Zoom這個屬性一般不為人知,甚至有些CSS手冊中都查詢不到。其實Zoom屬性是IE浏覽器的專有屬性,Firefox等浏覽器不支持。它可以設置或檢索對象的縮放比例。除此之外,它還有其他一些作用,比如觸發ie的hasLayout屬性,清除浮動、清除margin的重疊等。
因為Zoom屬性是IE浏覽器的專有屬性,所以他清除浮動作用只適用於IE浏覽器,而Firefox、google等浏覽器則需要使用overflow:auto屬性來清除浮動。所以要達到兼容IE6、IE7、IE8、Firefox、google浏覽器的時候就必需使用這兩個屬性。
我們在重構頁面的時候經常會使用到一個大容器裡面包含多個浮動小容器的布局,但是如果外面這個大容器的沒有設置固定的高度值,那麼大容器高度不會隨著裡面小容器高度變化而變化,產生內容溢出的現象,這時只需要清除浮動就會恢復正常。所以只要給外面大容器加上overflow:auto的屬性,可以解決IE7和火狐浏覽器下的清除浮動問題,但是IE6下不生效,所以我們還需要使用zoom這個IE的私有屬性來達到徹底清楚浮動的兼容效果。
實例代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>MJBlog</title> <style type="text/css"> .box{ width:300px; height:auto; background-color: #000000; margin:100px auto; padding:5px; } .box h2{ width:300px; line-height:24px; color:#CCCCCC;} .xx { width:140px; float:left; height:24px; overflow:hidden; padding:0px 5px; line-height:24px; color: #FF9933;} .za{overflow:auto; zoom:1} .zb{overflow:auto;} .zc{zoom:1;} </style> </head> <body> <div class="box"> <h2>這個沒加overflow:auto和zoom:1屬性,沒有清除浮動,底下的li產生溢出重疊現象</h2> <div class="xx">福州酒吧萬聖節派對活動</div> <div class="xx">福州酒吧萬聖節派對活動</div> <div class="xx">福州酒吧萬聖節派對活動</div> <div class="xx">福州酒吧萬聖節派對活動</div> <div class="xx">福州酒吧萬聖節派對活動</div> <div class="xx">福州酒吧萬聖節派對活動</div> </div> <div class="box za"> <h2>這個加overflow:auto和zoom:1屬性,清除浮動,正常</h2> <div class="xx">福州酒吧萬聖節派對活動</div> <div class="xx">福州酒吧萬聖節派對活動</div> <div class="xx">福州酒吧萬聖節派對活動</div> <div class="xx">福州酒吧萬聖節派對活動</div> <div class="xx">福州酒吧萬聖節派對活動</div> <div class="xx">福州酒吧萬聖節派對活動</div> </div> </body> </html>
總結
以上就是關於CSS中zoom屬性和overflow:auto屬性清除浮動作用的全部內容,希望本文的內容對大家的工作或者學習能有所幫助,如果有疑問大家可以留言交流,謝謝大家對的支持。