【问题标题】:IE Stylsheets/ Conditional comments Not workingIE样式表/条件注释不起作用
【发布时间】:2012-12-08 16:44:02
【问题描述】:

我试图让一个网站在 IE 中看起来更好,所以我决定使用条件 cmets。所以我用这个条件注释链接到样式表。

<!--[if IE]>
<link rel="stylesheet" type="text/css" href="IEstyle.css" />
<![end if]-->

这不起作用,它要么使用默认样式表,要么显示一个空白页面。所以然后我在某处读到cmets是这样的。

<!--[if !IE]>-->
<link rel="stylesheet" type="text/css" href="IEstyle.css" />
<!--<![endif]-->

所以我尝试了它,它与另一个完全相同,但--&gt; 显示在页面上。我对 html 还是有点陌生​​,任何帮助都会很好。

【问题讨论】:

    标签: html css internet-explorer conditional-comments


    【解决方案1】:

    这是评论的正确格式:

    <!--[if IE ]>
    Special instructions for IE here
    <![endif]-->
    

    这是一个非 IE 评论:

    <!--[if !IE ]>
    According to the conditional comment this is not IE
    <![endif]-->
    

    来源:http://www.quirksmode.org/css/condcom.html

    编辑:刚刚注意到他们的“不”示例是错误的。我已经更正了。

    【讨论】:

    • 谢谢,它可能是正确的代码,或者我尝试将条件语句放在正文而不是头部的事实,但至少它现在可以工作,谢谢!
    • 考虑到我在这里提供的代码与您使用的代码不同,我说这是正确的代码;)
    • 不幸的是,IE 10+ 似乎不再支持条件。来源:https://msdn.microsoft.com/en-us/library/hh801214(v=vs.85).aspx
    • 好消息是,由于新版本的 IE(和 Edge)更符合标准,因此不再需要针对 IE 进行特定的黑客攻击。现在,最好使用feature detection 而不是浏览器检测。
    • @LoganHasbrouck 正确的链接是msdn.microsoft.com/en-us/library/hh801214
    【解决方案2】:

    你应该这样使用: 语法:

    <!--[if IE 8]> = IE8
    <!--[if lt IE 8]> = IE7 or below
    <!--[if gte IE 8]> = greater than or equal to IE8
    
    
    <!--[if IE 8]>
    <style type="text/css">
        /* css for IE 8 */
    </style>
    <![endif]-->
    
    <!--[if lt IE 8]>
        <link href="ie7.css" rel="stylesheet" type="text/css" />
    <![endif]-->
    

    reference link 1

    reference link 2

    【讨论】:

      【解决方案3】:

      声明您想要拉出条件表的 IE 版本总是很好的,例如,如果您想要 IE 9 或更低版本,则如下所述。

      <!--[if lte IE 9]>
      <link rel="stylesheet" type="text/css" href="IEstyle.css" />
      <![endif]-->
      

      【讨论】:

      • 如果他只想让所有版本的 IE 都使用样式表怎么办?
      • 将 IE 用于所有人都很好,但 IE 版本之间以及每个版本中的显示方式通常存在一些差异,所以我只想展示如何区分版本。
      • 感谢您的帮助,我终于让它工作了,我现在只想要它或所有版本。
      【解决方案4】:

      在 IE10 中禁用了 HTML 条件 cmets。 CSS 条件 cmets 可用于在 IE10+ 中定位样式。
      https://www.mediacurrent.com/blog/pro-tip-how-write-conditional-css-ie10-and-11/

      @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
      // IE10+ CSS here
      }
      

      【讨论】:

        【解决方案5】:

        当遇到这个问题时,我们选择了&lt;script type="module"&gt; 解决方案。更多详情here.

        我们还想访问我们使用其他 ES5 脚本中的 ES6 代码设置的全局变量,以确定我们是否想做一些不同的事情。显然,在这种情况下,导出不起作用,但您可以将变量分配给 window.&lt;something&gt;,然后像访问任何其他变量一样访问它们。

        只有运行 ES6 和支持模块的浏览器才能运行 type="module" 中包含的脚本。

        【讨论】:

          猜你喜欢
          • 2014-04-02
          • 2012-07-27
          • 2012-02-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-08
          • 2011-01-29
          相关资源
          最近更新 更多