在我的 css 类中使用 Zoom:1 可以吗?
-
03-10-2019 - |
题
每当我发现 IE 显示我的网站很奇怪(与 Chrome 和 Firefox 不同)时,我会尝试放置 zoom:1
在 css 类中显示奇怪的部分。很多时候这可以解决问题并使其看起来与其他浏览器一致。
使用有问题吗 zoom:1
?我知道我的 CSS 无法验证,但是如果我过度依赖使用,是否会出现任何现实问题 zoom:1
?
解决方案
你要解决的问题是 IE hasLayout
问题。 这里 是一篇很好的文章,概述了哪些属性也会触发 IE 中的“具有布局”。
据我所知没有副作用 zoom: 1
但它不是 W3C 有效的。我很确定我自己在一些项目中使用它。
然而,当然有极小的可能性 zoom
有一天,它会成为一个真正的 CSS 属性,或者在另一个专有环境中使用,比如 iPad 或其他任何东西,这可能会导致事情崩溃。
一个真的 干净的 解决方案,缩放不是。如果可能的话,最好以本文中概述的其他方式提供元素“布局”。
其他提示
相反,使用 Zoom:1 也有明显的缺点,即使在 IE 中也是如此。通常,我只将它包含在仅限 IE 的样式表中,但即使在过去的几天里,我也一直在努力解决一些布局问题,因为我选择使用 *{zoom:1;}
——要点——在有限的基础上使用它。如果你只关心IE7+,你可以使用min-height:1%,与触发hasLayout效果相同
截至 2012 年 11 月,zoom 更有可能有一天成为有效的 CSS,尽管在上述上下文中使用它似乎不会产生任何负面副作用。
看: http://dev.w3.org/csswg/css-device-adapt/ 或者 http://www.w3.org/TR/css-device-adapt/
仅 IE 支持缩放,目前不支持。未来可能会有一个名为“zoom”的属性,它可能会把事情搞砸,但由于广泛使用,这种情况不太可能发生。
display: inline-block;
做同样的事情,但是是标准代码。
在里面 稀有的 如果它产生问题,您可以使用
display: block !important; /* or inline, etc. */
display: inline-block; /* in this order */
仅将其发送到它有用的旧版 Internet Explorer。