如何防止在IE中加载样式表,包括版本10和11

时间:2015-08-03 14:27:01

标签: internet-explorer stylesheet css-animations internet-explorer-10 internet-explorer-11

我想创建单独的样式表,一个用于所有IE版本,另一个用于"普通浏览器" ;)

4 个答案:

答案 0 :(得分:1)

<!DOCTYPE html>
<html>
<head>
    <title> overwrite cssText if IE.  ewww nasty.  </title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style type=text/css>
        body { font-family:'Segoe UI',sans-serif; font-size:14pt; color:black }
        #customLook { display:inline-block; margin-top:50px; margin-left:50px }
    </style>
    <link id=animstyle rel=stylesheet type=text/css href=animstyle.css>
    <script>
        var s= (animstyle.sheet||animstyle.styleSheet)                  // w3c-browser OR ie8
        if (s && s.cssText) s.cssText= ".customSpan:before{content:'not ';color:red}"   // only IE implements sheet.cssText  (including Edge)  it's r/w.
    </script>
</head>
<body>
    <div id=customLook>
        <span class=customSpan>ANIMATED</span>
    </div>
</body>
</html>



试试这个online demo

实际上,您可以改为放置s.disabled=true,然后启用其他一些css链接。那更合适。但我只是发布了这个,因为它太讨厌了。


编辑这是一种简单的方法来禁用一张纸并用另一张纸替换它:


        <link id=animstyle rel=stylesheet type=text/css href=animstyle.css>
        <script>
            var s= (animstyle.sheet||animstyle.styleSheet)                  // w3c-browser OR ie8
            if (s && s.cssText) s.disabled= true                        // only IE implements sheet.cssText  (including Edge)  it's r/w.
        </script>
        <link rel=stylesheet type=text/css href=NOanimstyle.css onload="(this.sheet||this.styleSheet).disabled=!s.disabled">
{
{3}}

答案 1 :(得分:0)

您可以使用浏览器嗅探 - 类似How can I target only Internet Explorer 11 with JavaScript?,然后使用document.write加载正确的样式表(请参阅When using document.write to load a different css stylesheet, browser refreshes infinitely

答案 2 :(得分:0)

您可能会找到您要找的答案here

似乎已经回答

答案 3 :(得分:0)

你可以总是这样的

<script>
var ltie11 = /msie/.test(navigator.userAgent.toLowerCase());
var ie11 = /Trident/.test(navigator.userAgent);
if( ! (ltie11 || ie11) ) {
    var $link = $('<link>').attr('type','text/css').attr('src', 'css/css.css');
    $('body').append($link);
}
</script>