可以在我的css课程中使用zoom:1吗?

时间:2010-05-06 20:38:20

标签: css cross-browser haslayout

每当我发现IE显示我的网站很奇怪(与chrome和firefox不同)时,我会尝试在css类中放置zoom:1以显示奇怪的部分。很多时候,这可以解决问题并使其与其他浏览器保持一致。

使用zoom:1是个问题吗?我知道我的CSS不会验证,但是如果我过分依赖zoom:1,是否会出现任何现实世界的问题?

5 个答案:

答案 0 :(得分:17)

您正在解决的问题是IE hasLayout问题。 Here是一篇很好的文章,概述了哪些属性也会在IE中触发“有布局”。

我知道zoom: 1没有任何副作用,只是它不是W3C有效。我很确定我自己在一些项目中使用它。

然而,当然有一天zoom成为真正的CSS属性的远程机会 - 或者在iPad或其他任何专有上下文中使用 - 这可能导致事情破裂。

一个非常干净的解决方案,缩放不是。如果可能的话,最好以文章中概述的其他方式给出元素“布局”。

答案 1 :(得分:1)

相反,使用zoom有明确的缺点:1,即使在IE中也是如此。通常,我只将它包含在仅IE样式表中,但即使在过去几天我也遇到了一些布局问题,因为我选择使用* {zoom:1;}

- 外卖 - 在有限的基础上使用它。如果你只关心IE7 +,你可以使用min-height:1%,这与触发hasLayout具有相同的效果

答案 2 :(得分:1)

截至2012年11月,变焦有可能有一天会成为有效的CSS,尽管在上述环境中使用它似乎不会产生任何负面的副作用。

请参阅:http://dev.w3.org/csswg/css-device-adapt/http://www.w3.org/TR/css-device-adapt/

答案 3 :(得分:0)

只有IE支持缩放,所以暂时不支持。可能会有一个名为zoom的未来属性可能会搞砸,但由于广泛使用,这种情况不大可能。

答案 4 :(得分:0)

display: inline-block;做同样的事情,但是标准代码。

罕见的案例中,它会产生问题,您可以使用

display: block !important; /* or inline, etc. */ 
display: inline-block; /* in this order */

只将它发送到有用的古老版本的Internet Explorer。