样式表与IE 9兼容

时间:2011-04-14 04:22:05

标签: css css3 internet-explorer-9 css3pie

我已经习惯了对IE和非IE浏览器有单独规则的样式表。例如,我一直在使用CSS3 Pie在IE中生成圆角和渐变。

问题在于IE 9支持圆角和渐变,并且不再需要这样的解决方法。如何重写样式表以确保行为仅适用于IE 8-而不适用于IE 9?

谢谢!

编辑:这是一个来自CSS3 Pie网站的示例,其中IE 9的规则是多余的: http://css3pie.com/demos/tabs/

3 个答案:

答案 0 :(得分:5)

通常的方法是为每个版本使用conditional comments和单独的补丁样式表:

<!--[if IE 7]><style type="text/css">@import "ie7-kludges.css";</style><![endif]-->
<!--[if IE 8]><style type="text/css">@import "ie8-kludges.css";</style><![endif]-->
<!--[if IE 9]><style type="text/css">@import "ie9-kludges.css";</style><![endif]-->

通过这种方式,您可以在主样式表中使用标准CSS,然后在您需要使用的每个版本的IE表现自己的任何克隆和无意义上进行分层。每个版本的IE通常需要不同的kludges,所以我把它们放在不同的样式表中。

答案 1 :(得分:1)

答案 2 :(得分:1)

如果我们看不到原文,很难告诉你如何改写。一般来说,处理IE的常见最佳做法是以某种形式使用IE的条件注释。我通常做的是通过所述评论写出带有与特定版本的IE匹配的类的body标签。因此,对于IE7,我最终可能会这样:

<body class="ie7">

这样,在我的CSS中,我可以使用特异性来赋予ie7自己的风格,而不必诉诸于黑客,也不必管理多个css文件中的样式。

.something {...style for good browsers...}
.ie7 .something {...fix IE 7 here...}