浅谈CSS中overflow清除浮动的用法

(编辑:jimmy 日期: 2024/11/11 浏览:2)

overflow清除浮动以下面的XHTML代码为例:

XML/HTML Code复制内容到剪贴板
  1. <div id="container">  
  2. <div id="left"></div>  
  3. <div id="right"></div>  
  4. </div>  


我以前用的方法是(CSS代码):

CSS Code复制内容到剪贴板
  1. #container{   
  2. width:1000px;   
  3. overflow:hidden;   
  4. background:#999999;   
  5. }   
  6. #left{   
  7. width:70%;   
  8. height:500px;   
  9. float:left;   
  10. background:#ff0000;   
  11. }   
  12. #right{   
  13. width:28%;   
  14. height:500px;   
  15. float:rightright:   
  16. background:#0000ff;   
  17. }  

这种方法有效的清除了浮动,但 IE6 里没有效果,所以为了兼容 IE6 ,需要为父元素设了一个宽度,并且是一个合适的宽度。

再一种方法是把 overflow:hidden 换成 overflow:auto ,但 IE6 仍然没有效果,为了兼容 IE6 ,还是要做“手脚”,可以为父元素加上 height:1% 或 zoom:1 ,有人说 height:1% 应该写成 _height:1% ,但我并没有发现不加_符号有什么影响。而 zoom:1 则不能通过W3C验证。

总结一下:清除浮动可以用 overflow:hidden 或 overflow:auto ,在比较标准的浏览器里没有问题,但 IE6 没有效果,为了兼容 IE6 ,可以为父元素:

1、设置一个合适的宽度,但“合适的宽度”有的时候不好掌握;

2、加上 height:1% ,什么都不用管,加上就有效,我还没有发现缺点;

3、加上 zoom:1 ,不能通过W3C验证。

为了兼容 IE6 的这三种方法根据自己的实际情况和个人喜好选择吧。