IE样式表/条件注释不起作用

时间:2012-12-21 04:50:54

标签: html css internet-explorer conditional-comments

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

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

这不起作用,它将使用默认样式表,否则将显示空白页面。那么我在某处读到评论是这样的。

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

所以我尝试了它并且它完成了与另一个完全相同的事情,但-->显示在页面上。我对html还是有些新手,任何帮助都会很好。

5 个答案:

答案 0 :(得分:4)

以下是评论的正确格式:

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

这是一个NOT IE评论:

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

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

编辑:只是注意到他们的'不'示例是错误的。我纠正了它。

答案 1 :(得分: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

答案 2 :(得分:1)

同样,总是很好地声明你想要提取条件表的IE版本,例如,如果你想要IE 9及更低版本,它将如下所述。

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

答案 3 :(得分:0)

HTML 条件注释在 IE10 中被禁用。 CSS 条件注释可用于在 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
}

答案 4 :(得分:0)

遇到此问题时,我们采用了 <script type="module"> 解决方案。更多详情here

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

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