我怎样才能让IE忽略一个类?

时间:2009-06-28 21:55:51

标签: javascript html css

IE处理我的一个div类完全错误。它适用于我尝试过的其他浏览器。我想简单地不将该类应用于IE中的div。有没有让IE不适用它的技巧?

更多信息:div有多个类。我想在IE中加载一个而不是另一个。这些类在Javascript文件中定义。

感谢。 麦克

3 个答案:

答案 0 :(得分:6)

您可以使用IE的条件注释来覆盖类的样式 - 这可能是最简单的事情。看看这里:MSDN link  基本上,您可以在注释中为类分配更具体的样式,从而覆盖标准 - 因此,您可以关闭大部分样式。智能浏览器不会看到评论。

答案 1 :(得分:5)

您可以在头部区域中使用类似的内容在仅IE样式表中重置该特定样式:

<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" media="screen"  href="/styles/ie.css" />
<![endif]-->

(适用于IE 7及以下版本......)

更新以反映一些评论:您可以在文档中使用此浏览器将所有非IE浏览器作为一个整体定位(如果您选择样式,则可以在头部):

<!--[if !IE]><!-->
/* some styles AND / OR javascript */
<!--<![endif]-->

答案 2 :(得分:0)

我讨厌通过javascript进行浏览器检测,但如果其他解决方案都不起作用,您可以尝试以下方法:

function removeClassForIE() {

    // Look at userAgent to test for IE
    if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {

        var divs = document.getElementsByTagName("div");
        for (var i = 0; i < divs.length; i++) {

             if (divs[i].className == "myClassName") {
                 divs[i].className = "";
            }
        }
    }
}

那应该从那些div中删除该类,并且只有它的IE。您可以调用函数,例如&lt; body onload =“removeClassForIE();”&gt;