在IE 6中触发haslayout,使用*html div { height: 1%; }会有什么副作用?

5
有一段时间,我在我的基础样式表中添加了 * html div { zoom: 1; },这个方法很有效。但是,现在出现了一些绝对定位的元素,在IE6中由于这个原因导致失去了高度和宽度。因此,我想使用 * html div { height: 1%; } 替代它,但是这样会有什么副作用呢?
更新:
感谢大家的回答。像你们所有人说的那样,答案很可能是没有副作用。
然而,我必须不同意你们关于何时/如何触发 haslayout 的所有建议(在此时)。我认为 haslayout 是一种理想的行为,并且应该是 IE6 (& 7) 默认的行为。
已经提到过,由于同样的原因,不太可能会有任何副作用,为什么不将其设置为默认行为,并在出现不良行为(如果有)时关闭它。
可以通过在特定元素上指定 {zoom: auto;}{height:auto;} 来实现这一点,具体取决于在基础样式表中如何定义该元素。
由于每个人的答案都是相同的,虽然有些超出了范围,因此我必须把答案给第一个说“没有副作用”的人。再次感谢!

我一直采用“先做对再修复IE”的方法,所以从来没有想过将hack应用于所有东西。不过在我的下一个项目中尝试这个技巧可能会是一个有趣的实验。看看它是否能够解决IE6的任何问题。谢谢你的建议! - Mark Hurd
4个回答

3

这被称为Holly Hack。据我所知,没有副作用,特别是如果您直接将其应用于IE6的* html。我同意其他帖子中的观点,将其放置在<div>标记上可能不是最明智的选择-我会针对导致问题的单个元素。


1

我尽量减少使用这些变通方法,以避免出现意外问题;只在IE6破坏布局时需要的元素上使用它,而不是在页面上的所有元素上使用。


1

我也认为没有任何副作用。但是如上所述 - 只在需要的地方使用它。我个人会...

  1. 仅在设置类上使用:

    • html .haslayout { height: 1%; }
  2. 将其放置在通过条件注释包含的IE 6样式表中

    <!--[if IE 6]> <link href="ie6.css" rel="stylesheet" type="text/css" media="screen,projection" /> <![endif]-->

希望这有所帮助。


0

1% 的高度应该没有影响,因为 IE 实际上将尺寸视为最小尺寸。然而,pos:abs 足以提供 haslayout,我同意 jeroen 的观点,这样的概括性断言是不明智的。例如,在 CSS 重置中,您不希望出现这种情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接