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

可能重复:
我如何在IE中做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*/ } 

在IE9之前的浏览器中,这是通过条件注释完成的。

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

避免加载多个CSS文件或内联CSS的好方法是根据Internet Explorer的版本将类传递给body标签。 如果你只需要一般IE黑客,你可以做这样的事情,但它可以扩展为特定于版本:

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

现在在你的css代码中,你可以简单地做:

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

这也可以保持你的CSS文件有效,因为你不必使用肮脏的(和无效的)CSS黑客。

一个快速的方法是根据你想要的焦点(检查注释),在你的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。

如前所述,我更喜欢为ie规则使用单独的文件。

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

在它里面,你可以使用这个设置不同版本的规则:

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