2009-02-26 22 views
5

有一阵子,我一直在* html div { zoom: 1; }在我的基础样式表,它已经很好。然而,我现在遇到这样的情况,那就是那些绝对定位的元素在IE 6 cuz中失去了高度和宽度。所以我想改为* html div { height: 1%; },但是副作用是什么?在IE 6中触发haslayout,使用* html div {height:1%; }

更新:

感谢您的答复。正如你们所说的,答案很可能没有副作用。

我会然而与所有建议,不同意(在这个特定的时刻)如何/时触发hasLayout的。我发现haslayout一个理想的行为,因此应该是IE6中的默认行为(& 7)。

它已经提到,这是不可能会有任何副作用,确切的原因,为什么不把它的默认行为,当一个令人不快的行为(如果有的话)只出现将其关闭。

可以通过在该特定元素上指定{zoom: auto;}{height:auto;}来完成此操作,具体取决于它在基本样式表中的定义方式。

我将不得不放弃回答的第一人,上面写着“无副作用”,因为每个人的答案是一样的,而有些出去的范围。再次感谢!

+0

我一直采取了“做正确的,然后修复IE的做法”,因此将黑客的一切从来没有发生在我身上。不过,可能是我下一个项目的一个有趣的实验。看看它是否会杀死任何IE6漏洞。感谢您的想法! – 2009-02-28 02:54:29

回答

3

这就是所谓的The Holly Hack。据我所知,没有副作用,特别是如果你直接在IE6上使用* html。我同意其他海报,将其放在<div>标签上可能不是最明智的选择 - 我会针对导致悲伤的各个元素。

1

我尽量减少使用这些类型的解决方法来避免无法预料的问题;当IE6打破布局时,我只在需要它的元素上使用它,而不是在页面中的所有元素上。

0

1%的身高应该没有效果,因为IE会将尺寸视为最小尺寸。然而,pos:abs已经足以让haslayout无论如何,我同意jeroen这样的总括性断言并不明智。例如,这不是你想要的CSS重置。

1

我也不认为有任何副作用。但如前所述 - 只能用于你需要的东西。我个人...

  1. 使用它,只有一组类:

    • HTML .haslayout {身高:1%; }
  2. 将其放置在一个IE 6样式表经由conditional comment

    <包括! - [如果IE 6] > <链路HREF = “ie6.css” 的rel = “样式表” 类型= “文/ CSS” 媒体= “屏幕投影”/ > <![ENDIF] - >

希望帮助