0

因此,如果检测到 IE,我将尝试加载不同的 css 样式表。

我的代码:

<head>
<!-- other scripts and stylesheets -->

<!--[if IE]>
  <link href='css/index_ie.css' rel='stylesheet' type='text/css'>
<![endif]-->
<!--[if !IE]>
  <link href='css/index.css' rel='stylesheet' type='text/css'>
<![endif]-->

<script>
(function() {
    if (typeof ActiveXObject === "undefined") {
        var s = document.createElement('link');
        s.href = "css/index.css";
        s.rel = "stylesheet";
        s.type = "type/css";
        document.documentElement.appendChild(s);
    }
    else {
        var s = document.createElement('link');
        s.href = "css/index_ie.css";
        s.rel = "stylesheet";
        s.type = "type/css";
        document.documentElement.appendChild(s);
    }
})();
</script>
</head>

index.css这在非 IE 浏览器时正确加载。但是,index_ie.css当使用 IE 时,这不会加载。

PS:使用 IE 10 进行测试

4

1 回答 1

1

要在 IE 9 和更早版本以外的浏览器中包含内容,请使用稍微不同的语法

<![if IE]>
  <link href='css/index.css' rel='stylesheet' type='text/css'>
<![endif]>

正如它解释的那样:

下层显示的条件注释使您能够在无法识别条件注释的浏览器中包含内容。虽然条件注释本身被忽略了,但它里面的 HTML 内容却没有。

不过,请注意,在 IE 9 之后(来自同一页面的顶部)不完全支持条件注释:

重要从 Internet Explorer 10 开始,标准模式不再支持条件注释。使用功能检测为浏览器不支持的网站功能提供有效的后备策略。有关标准模式的更多信息,请参阅定义文档兼容性

于 2013-07-23T10:43:11.080 回答