【问题标题】:About HTML conditional comments关于 HTML 条件注释
【发布时间】:2012-06-02 02:32:57
【问题描述】:

如果浏览器是 IE 6 或更低版本,我正在尝试显示 span A;如果浏览器大于 IE 6 或不是 IE,我正在尝试显示 span B

<!--[if lte IE 6]><!--><span>You're using IE 6 or lower.</span><!--<![endif]-->
<!--[if (!IE)|(gt IE 6)]><!--><span>You're using IE 7 or greater or another browser.</span><!--<![endif]-->​

这在我拥有的每个 Internet Explorer 版本中都能完美运行,但在 Chrome 和 Firefox 中两个都显示了跨度。我猜他们不承认这个条件,因为它们是微软特有的。

有没有办法在不重复使用 JavaScript 的情况下做到这一点?

【问题讨论】:

    标签: html internet-explorer browser internet-explorer-6 conditional-comments


    【解决方案1】:

    您的第一个条件注释应该是:

    <!--[if lte IE 6]><span>You're using IE 6 or lower.</span><![endif]-->
    

    这是一条评论 (&lt;!-- … --&gt;),大多数浏览器都会这样对待。只有 IE 会将其视为评论以外的任何内容,并且只有 IE span。

    将其与您现在拥有的进行比较:

    <!--[if lte IE 6]><!--><span>You're using IE 6 or lower.</span><!--<![endif]-->
    

    这是两个 cmets(&lt;!--[if lte IE 6]&gt;&lt;!--&gt;&lt;!--&lt;![endif]--&gt;),它们之间有一些标记。由于只有 IE 知道 cmets 有任何特殊性,因此其他浏览器会显示内容,但不会显示两个 cmets。

    你可以找到一个很彻底的guide to conditional comments on Quirksmode

    【讨论】:

    • 感谢大家的回答。修改第一个条件注释就可以了
    【解决方案2】:

    这在我拥有的每个 Internet Explorer 版本中都能完美运行,但在 Chrome 和 Firefox 中,这两个跨度都会显示。

    嗯,他们会的。

    条件 cmets 是 IE 功能。仅有的。其他浏览器将它们视为普通的 cmets。

    【讨论】:

      【解决方案3】:

      这是test case

      如您所见,我使用了两种类型的 cmets。下层显示和下层隐藏,以支持非 IE 浏览器。有关此主题的更多信息,请阅读Microsoft's post

      【讨论】:

        【解决方案4】:

        摆脱第二个 cmets 和

        只保留:

        <!--[if lte IE 6]> code <![endif]-->
        

        您正在注释代码本身,但它没有显示出来。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-02-21
          • 2016-02-15
          • 2011-01-20
          • 2011-10-02
          • 1970-01-01
          • 2013-01-01
          • 2011-03-03
          • 2011-10-23
          相关资源
          最近更新 更多