有没有办法可以在CSS文件中编写专门针对IE8,7,6的css属性

时间:2010-12-16 13:38:46

标签: css

我想在css文件中仅对IE 6,7,8使用一些css属性。可能吗? 是否可以为每个属性定位特定版本的IE。

这样的事情:

.mystyle {
   top:5px
   top:-30px //only if ie6
   top:-5px  //only if ie8
}

我知道<![If lt IE7]>标签,但是,我不想再创建一个css文件。

3 个答案:

答案 0 :(得分:5)

这个脚本很小,充满了令人敬畏的:http://rafael.adm.br/css_browser_selector/

它会将类放在与用户浏览器对应的HTML元素上。那会让你做这样的事情:

.ie7 .mystyle { top:5px;}
.ie8 .mystyle { top:-30px;}

我不会仅为此脚本创建新的外部JavaScript文件。它太小了,我通常只是将它添加到我现有的外部JavaScript文件的顶部。

答案 1 :(得分:3)

您可以在样式表中使用许多黑客,但这通常被认为是不好的做法。这是an example

为什么不想使用多个样式表?

受斯蒂芬的帖子启发,你可以做到这一点(由保罗爱尔兰人从html5 boilerplate偷走):

<!--[if lt IE 7 ]> <html lang="en" class="ie6"> <![endif]-->
<!--[if IE 7 ]>    <html lang="en" class="ie7"> <![endif]-->
<!--[if IE 8 ]>    <html lang="en" class="ie8"> <![endif]-->
<!--[if IE 9 ]>    <html lang="en" class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en"> <!--<![endif]-->

最终修改

应该解释一下。如果将其添加到html中,您将有条件地设置IE覆盖类。如果浏览器大于IE9(无)或不是IE

,则最后一行不呈现类

答案 2 :(得分:0)

你可以使用IE黑客,这将实现你正在寻找的东西。但是,不建议这样做;长期维护将变得困难。

条件评论解决方案是最简单,最干净的解决方案,并且得到了MS的支持。你应该使用它们。