如果浏览器是IE,则应用CSS规则。

37

可能是重复问题:
如何在CSS中使用IE条件语句?

如何将以下规则应用于仅限于 IE 的情况?

.abc {

float:left;
height:0;
margin:0 10px;
width:0;

/*Apply these rules for IE only*/
position:absolute;
left:30;
top:-10;
/*Apply these rules for IE only*/
}
4个回答

29

在包括 IE9 在内的浏览器中,这是通过条件注释完成的。

<!--[if IE]>
<style type="text/css">
  IE specific CSS rules go here
</style>
<![endif]-->

18
这将不适用于IE10及更高版本。 - Frederik Voordeckers
2
这不再是答案 - Manoochehr Dadashi
1
@abzarak,然后提供一个新的、正确的答案,让OP可以将其标记为已接受的答案。 - Pekka
@Pekka웃 这个页面上有一些正确的答案可以被接受,或者您可以更新您的回答。请查看这个链接:https://dev59.com/qGMk5IYBdhLWcg3w2ReT - Manoochehr Dadashi
1
@Pekka웃 你的更新答案比旧的好。但最好的方法是浏览器CSS兼容性检查。一旦您更新了答案,我会投赞成票。这是一篇好文章:https://philipnewcomer.net/2014/04/target-internet-explorer-10-11-css/ - Manoochehr Dadashi

23

避免加载多个CSS文件或使用内联CSS的好方法是根据Internet Explorer的版本向body标签添加类。如果您只需要一般的IE Hack,您可以做这样的事情,但可以扩展为特定于版本:

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

现在您可以在 CSS 代码中简单地执行以下操作:

.ie .abc {
  position:absolute;
  left:30;
  top:-10;
}

这也使您的CSS文件保持有效,因为您不必使用肮脏(无效)的CSS hack。


如果使用10能够正常工作,请执行这些操作。 - Jon
2
Jon:IE10不再支持条件注释。另一方面,您也不再需要它们了。 - DASPRiD

18

一种快速的方法是根据你想要聚焦的IE版本(查看注释),在你的CSS文件中使用以下内容(在margin-top处,设置任何你喜欢的CSS属性):

margin-top: 10px\9; /*It will apply to all ie from 8 and below */
*margin-top: 10px; /*It will apply to ie 7 and below */
_margin-top: 10px; /*It will apply to ie 6 and below*/

更好的方法是检查用户代理或使用条件分支语句,以避免在其他浏览器中加载不必要的CSS。


IE11 呢?我尝试了 margin-top: 10px\9、margin-top: 10px\10 和 margin-top: 10px\11,但都没有成功。 - Guillaume
3
请试用我的IE10+ hack _:-ms-fullscreen, :root .selector { margin-top: 10px; } 和 IE11+ hack: _:-ms-lang(x), .selector { margin-top: 10px; } 它们应该会对你有所帮助。在这里测试它们:http://browserstrangeness.bitbucket.org/css_hacks.html#msie - Jeff Clayton
@JeffClayton 这是正确的方法。感谢您的提示! - JackTheKnife
1
发现在IE 11上,.selector { property:value\0; }是有效的。 - Alexander Kimaru

5

我更喜欢使用单独的文件来处理IE规则,就像之前所描述的那样。

<!--[if IE]><link rel="stylesheet" type="text/css" href="ie-style.css"/><![endif]-->

在其中,您可以使用以下方式设置不同版本的ie规则:

.abc {...} /* ALL MSIE */
*html *.abc {...} /* MSIE 6 */
*:first-child+html .abc {...} /* MSIE 7 */

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接