一起CSS

当前位置:一起CSS > CSS, 前端技术 > 文章正文

再谈overflow清除浮动

overflow是一种很好的清除浮动的方法(至少我这么认为),先前发表的《三种有效的清除浮动的方法》里介绍了这种方法,从发表到现在也有一段时间了,这期间在其他地方也看到介绍overflow清除浮动文章,但和《三种有效的清除浮动的方法》里面的不太一样,下面就再说说overflow清除浮动。

以下面的XHTML代码为例:

<div id="container">
<div id="left"></div>
<div id="right"></div>
</div>

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

#container{
width:1000px;
overflow:hidden;
background:#999999;
}
#left{
width:70%;
height:500px;
float:left;
background:#ff0000;
}
#right{
width:28%;
height:500px;
float:right:
background:#0000ff;
}

这种方法有效的清除了浮动,但 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 的这三种方法根据自己的实际情况和个人喜好选择吧。

查看:4,153 评论:8 标签:

随机日志

已经有 8 条群众意见

  1. wyysf

    #right:width:28%;
    height:500px;
    float:right:
    background:#0000ff;
    }
    写快了吧?哈哈前面的大括号没有写上! 对话

    #1
  2. wyysf

    对了让父级标签container也浮动也没有吧? 对话

    #2
  3. 青色wyysf

    谢谢提醒,马上补上! 对话

    #3
  4. 青色wyysf

    container不需要浮动。 对话

    #4
  5. wyysf青色

    不好意思啊!
    当时写错了我说的是让父级标签container也浮动也可以解决你说的这样问题吧!
    当时打字时候把“可以”打成“没有”
    哈哈真是的! 对话

    #5
  6. 青色wyysf

    可以,不过浮动多了有时候不好控制。。。 对话

    #6
  7. ray

    又学了一招,谢谢 对话

    #7
  8. 袜子的眼睛

    我知道的,还有另外一种方法。可以在父DIV下,再加一个DIV。比如

    样式文件

    .clear{clear:both;font-size:0;height:0;line-height:0;} 对话

    #8

我要发表意见