每当我发现IE显示我的网站很奇怪(与chrome和firefox不同)时,我会尝试在css类中放置zoom:1
以显示奇怪的部分。很多时候,这可以解决问题并使其与其他浏览器保持一致。
使用zoom:1
是个问题吗?我知道我的CSS不会验证,但是如果我过分依赖zoom:1
,是否会出现任何现实世界的问题?
答案 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。