5

有一段时间,我一直在放入* html div { zoom: 1; }我的基本样式表,并且效果很好。但是,我现在遇到这样的情况,即绝对定位的元素在 IE 6 中失去了它们的高度和宽度。所以我正在考虑* html div { height: 1%; }改用,但副作用是什么?

更新:

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

但是,我将不得不不同意您(在这个特定时刻)关于如何/何时触发 haslayout 的所有建议。我认为 haslayout 是一种理想的行为,因此应该是 IE6 (& 7) 中的默认行为。

有人提到,由于确切的原因,它不太可能有任何副作用,为什么不将其设为默认行为,并且仅在发生不良行为(如果有的话)时将其关闭。

可以通过在基本样式表中定义特定元素的方式指定{zoom: auto;}或来做到这一点。{height:auto;}

我将不得不给第一个说“没有副作用”的人的答案,因为每个人的答案都是一样的,而有些人的答案超出了范围。再次感谢!

4

4 回答 4

3

这被称为冬青黑客。据我所知,没有副作用,特别是如果您* html直接使用 IE6。我同意其他海报的观点,将它放在<div>标签上可能不是最明智的选择——我会针对导致悲伤的个别元素。

于 2009-02-26T21:45:35.767 回答
1

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

于 2009-02-26T21:39:59.273 回答
1

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

  1. 仅在集合类上使用它:

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

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

希望有帮助

于 2009-02-27T11:33:56.820 回答
0

1% 的高度应该没有影响,因为 IE 确实将尺寸视为最小尺寸。然而 pos:abs 无论如何都足以提供 haslayout 了,我同意 jeroen 的观点,即像这样的笼统断言是不明智的。例如,这不是您在 CSS 重置中想要的。

于 2009-02-26T21:47:56.743 回答