IE处理我的一个div类完全错误。它适用于我尝试过的其他浏览器。我想简单地不将该类应用于IE中的div。有没有让IE不适用它的技巧?
更多信息:div有多个类。我想在IE中加载一个而不是另一个。这些类在Javascript文件中定义。
感谢。 麦克
答案 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;