【问题标题】:Is it okay to use zoom:1 in my css classes?可以在我的 CSS 类中使用 zoom:1 吗?
【发布时间】:2011-02-16 13:53:50
【问题描述】:

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

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

【问题讨论】:

    标签: css cross-browser haslayout


    【解决方案1】:

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

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

    不过,zoom 有朝一日成为真正的 CSS 属性——或者在 iPad 等其他专有环境中使用——这可能会导致事情崩溃。

    一个真正干净的解决方案,缩放不是。如果可能的话,最好以文章中所述的其他方式赋予元素“布局”。

    【讨论】:

    • 您可以通过使用条件 cmets 将 zoom 规则仅提供给 IE-7 或更低版本来缓解任何不利因素。 (IE8 的布局引擎工作方式不同,往往不会出现相同类型的问题。)
    【解决方案2】:

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

    -- 外卖 -- 在有限的基础上使用它。如果只关心IE7+,可以使用min-height: 1%,和触发hasLayout效果一样

    【讨论】:

      【解决方案3】:

      截至 2012 年 11 月,zoom 有朝一日成为有效 CSS 的可能性越来越大,尽管在上述情况下使用它似乎不会产生任何负面影响。

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

      【讨论】:

        【解决方案4】:

        缩放仅受 IE 支持,目前不支持。未来可能会有一个名为 zoom 的属性可能会搞砸,但由于广泛使用,这不太可能。

        【讨论】:

        【解决方案5】:

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

        罕见的情况下会产生问题,你可以使用

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

        仅将其发送到对其有用的旧版 Internet Explorer。

        【讨论】:

          猜你喜欢
          • 2013-09-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-21
          • 2012-10-08
          • 2015-11-23
          • 2017-04-13
          • 1970-01-01
          相关资源
          最近更新 更多