有没有办法在CSS文件中“if IE”?

时间:2010-12-12 16:02:50

标签: css internet-explorer conditional-comments

我知道如果您在Internet Explorer中,可以将条件语句加载到不同的CSS文件中,但是您可以在CSS文件中执行此操作吗?

我的情况是,如果是Internet Explorer,我希望右边距为20,如果是其他任何浏览器,则为10。

4 个答案:

答案 0 :(得分:14)

处理此问题的最简单方法是使用HTML中的条件,在页面的其余部分放置一个具有特定ID的div。

<!--[If IE 8]>
<div id="IE8">
<![endif]-->
  .
  .
  .
<!--[If IE 8]>
</div>
<![endif]-->

然后,您的CSS可以执行此操作:

#IE8 div.whatever { ... }

这种方式使得所有这些CSS黑客都不必要。

答案 1 :(得分:2)

CSS没有正式的条件注释语法。只有条件的HTML和JavaScript评论,因此请对其进行创作(John Fisher单向显示)。

你可以通过使用众所周知的CSS hacks来模拟条件CSS,但我宁愿不这样做。他们可能会在IE的任意版本中意外破解或以其他方式工作,因为黑客攻击是为了利用IE处理CSS的错误。

答案 2 :(得分:2)

this one这样的黑客使用IE无法解释的规则意味着IE停止处理规则,使其可以安全地用于其他浏览器。

像这样:

div.iehack { 
  margin-right:20px; 
  voice-family: "\"}\""; 
  voice-family:inherit;
  margin-right:10px; 
} 

答案 3 :(得分:0)

你会弄乱你的css文件做这些黑客攻击。最好为IE制作一个单独的文件。在常规css文件中将边距设置为10,并在IE特定文件中将其设置为20,这应该在您的常规css文件之后(有条件地)加载。你知道如何做到这一点,并没有理由以任何其他方式做到这一点。