CSS中zoom属性和overflow:auto属性清除浮动的作用详解

在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的私有属性来达到彻底清楚浮动的兼容效果。

在线演示:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
  5. <title>MJBlog</title> 
  6. <style type="text/css"> 
  7. .box{  
  8.      width:300px; 
  9.      height:auto; 
  10.      background-color: #000000; 
  11.      margin:100px auto; 
  12.      padding:5px; 
  13.  
  14.      } 
  15. .box h2{ width:300px; line-height:24px; color:#CCCCCC;}   
  16. .xx { width:140px; float:left; height:24px; overflow:hidden; padding:0px 5px; line-height:24px; color: #FF9933;} 
  17. .za{overflow:auto; zoom:1} 
  18. .zb{overflow:auto;} 
  19. .zc{zoom:1;}              
  20.       
  21. </style> 
  22. </head> 
  23.  
  24. <body> 
  25.  
  26.  
  27. <div class="box"> 
  28. <h2>这个没加overflow:auto和zoom:1属性,没有清除浮动,底下的li产生溢出重叠现象</h2> 
  29. <div class="xx">福州酒吧万圣节派对活动</div> 
  30. <div class="xx">福州酒吧万圣节派对活动</div> 
  31. <div class="xx">福州酒吧万圣节派对活动</div> 
  32. <div class="xx">福州酒吧万圣节派对活动</div> 
  33. <div class="xx">福州酒吧万圣节派对活动</div> 
  34. <div class="xx">福州酒吧万圣节派对活动</div> 
  35. </div> 
  36.  
  37. <div class="box za"> 
  38. <h2>这个加overflow:auto和zoom:1属性,清除浮动,正常</h2> 
  39. <div class="xx">福州酒吧万圣节派对活动</div> 
  40. <div class="xx">福州酒吧万圣节派对活动</div> 
  41. <div class="xx">福州酒吧万圣节派对活动</div> 
  42. <div class="xx">福州酒吧万圣节派对活动</div> 
  43. <div class="xx">福州酒吧万圣节派对活动</div> 
  44. <div class="xx">福州酒吧万圣节派对活动</div> 
  45. </div> 
  46.  
  47. </body> 
  48. </html> 

转载请注明:代码家园 » CSS中zoom属性和overflow:auto属性清除浮动的作用详解

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)