如何仅为Internet Explorer定义CSS样式?

如何仅为Internet Explorer定义CSS样式?,css,internet-explorer,stylesheet,Css,Internet Explorer,Stylesheet,我遇到过: /* for firefox only */ @-moz-document url-prefix() { #main_menu ul ul { top: 37px; } } 它只能用于定义firefox样式,是否有类似的替代方法用于定义仅用于IE的样式?或者这里的“条件样式表”方法被认为是最佳实践 在这个例子中,我只想更改css下拉菜单的上边距,因此ie只需要调整一些样式 多谢各位 ps我遇到过: /* for firefox only */ @-moz-document url

我遇到过:

/* for firefox only */
@-moz-document url-prefix() {
#main_menu ul ul {
top: 37px;
}
}
它只能用于定义firefox样式,是否有类似的替代方法用于定义仅用于IE的样式?或者这里的“条件样式表”方法被认为是最佳实践

在这个例子中,我只想更改css下拉菜单的上边距,因此ie只需要调整一些样式

多谢各位

ps我遇到过:

/* for firefox only */
@-moz-document url-prefix() {
#main_menu ul ul {
top: 37px;
}
}

我想说:

<!--[if IE]><!--> <html class="ie"> <!--<![endif]-->

但是我看不到IE中有任何变化。

您是在使用真实版本的IE进行测试,还是在开发人员工具中更改版本?例如,IE中的开发人员工具几乎从来没有显示出它在IE 8中应该是什么样子的准确表示

您是否检查了样式规则是否在没有先设置条件的情况下应用?您的CSS选择器可能有问题。我相信你的CSS选择器应该是“.ie#main#u menu ul ul ul”而不是你所拥有的。注意“.ie”后面的空格


您应该将此代码放在常规CSS之后的HTML文件中。现在,您将拥有另一个CSS文件(ie.CSS),该文件将应用于大于(且等于)IE6、大于(且等于)IE8的浏览器


仅供参考,IE 10不再支持条件注释
.ie #main_menu ul ul {
    top: 50px !important;
}
<!--[if (gte IE 6)&(lte IE 8)]>
  <link rel="stylesheet" href="css/ie8.css" media="screen,all" />
<![endif]-->
div{
  top:20px;
  *top:10px;
}