可能是重复问题:
如何在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*/
}
可能是重复问题:
如何在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*/
}
在包括 IE9 在内的浏览器中,这是通过条件注释完成的。
<!--[if IE]>
<style type="text/css">
IE specific CSS rules go here
</style>
<![endif]-->
避免加载多个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。
一种快速的方法是根据你想要聚焦的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。
我更喜欢使用单独的文件来处理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 */