帮助清除浮动,您如何看待这种全局方法?

时间:2009-10-28 20:59:40

标签: css

我正在学习清除所有浏览器浮动的绳索并且有想法。

您是否认为对所有div元素进行全局定义会有什么危害?

div {
    _zoom: 1;          /* Clear floats for ie6. Does NOT validate. */
    overflow: hidden;  /* Clear floats for all other browsers. */
}

可能只有少数特殊情况需要覆盖上述两条规则。在我的头脑中,我无法想到由于上述规则可能出现的任何问题,但也许有人知道更好?

您怎么看?

编辑1:

height: 100%;更改为_height: 1%;

编辑2:

_height: 1%;更改为_zoom: 1;

这是我正在运行的版本。这是一篇excellent link文章,描述了新手的所有清算方法。

2 个答案:

答案 0 :(得分:0)

当你浮动不是divs的元素时,你可能遇到的一个潜在问题是会发生什么。你的风格涵盖了<div />标签,但没有别的,所以你必须记住这一点,以防你在其他标签上使用float。

最好将这些样式应用于需要清除浮动的容器,而不是应用可能无法捕获所有内容的全部。

另请注意,如果hidden溢出,则可能会难以应用某些依赖于超出div标记的内容的样式。我能想到的一些情况是

  • 用于添加阴影或圆角的元素的边或角的样式,通常会溢出其容器。
  • 如果灯箱位于<div />
  • 范围内,可能会超出容器范围的灯箱
  • 放置在<div />内的自定义JavaScript工具提示。工具提示通常会“弹出”其容器,这可能会导致问题,具体取决于它们的设计方式。

如果您只对需要的元素而不是所有元素进行处理,这些问题更容易解决。

答案 1 :(得分:0)

这会引起问题。看看这些图像,1是常规的,2是div {height: 100%;}

alt text
(来源:zastica.com alt text
(来源:zastica.com

只有一个设置还存在一些其他不一致之处。所以,你可以得到一些奇怪的意外行为。