【发布时间】:2011-02-16 13:53:50
【问题描述】:
每当我发现 IE 显示我的网站很奇怪(与 chrome 和 firefox 不同)时,我都会尝试在 css 类中添加一个 zoom:1 来处理显示奇怪的部分。很多时候,这可以解决问题并使其看起来与其他浏览器一致。
使用zoom:1有问题吗?我知道我的 CSS 不会验证,但如果我过分依赖使用 zoom:1,是否会出现任何现实世界的问题?
【问题讨论】:
标签: css cross-browser haslayout
每当我发现 IE 显示我的网站很奇怪(与 chrome 和 firefox 不同)时,我都会尝试在 css 类中添加一个 zoom:1 来处理显示奇怪的部分。很多时候,这可以解决问题并使其看起来与其他浏览器一致。
使用zoom:1有问题吗?我知道我的 CSS 不会验证,但如果我过分依赖使用 zoom:1,是否会出现任何现实世界的问题?
【问题讨论】:
标签: css cross-browser haslayout
您要解决的问题是 IE hasLayout 问题。 Here 是一篇很好的文章并概述了哪些属性也会触发 IE 中的“具有布局”。
我知道zoom: 1 没有副作用,除了它不是 W3C 有效的。我很确定我自己在一些项目中使用它。
不过,zoom 有朝一日成为真正的 CSS 属性——或者在 iPad 等其他专有环境中使用——这可能会导致事情崩溃。
一个真正干净的解决方案,缩放不是。如果可能的话,最好以文章中所述的其他方式赋予元素“布局”。
【讨论】:
zoom 规则仅提供给 IE-7 或更低版本来缓解任何不利因素。 (IE8 的布局引擎工作方式不同,往往不会出现相同类型的问题。)
相反,使用 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。
【讨论】: