1

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

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

谢谢!

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

4

3 回答 3

5

通常的方法是为每个版本使用条件注释和单独的补丁样式表:

<!--[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 通常需要不同的组件,所以我将它们放在不同的样式表中。

于 2011-04-14T04:33:35.277 回答
1

在此处查看一些答案How do one target IE7 and IE8 with valid CSS?

这里是 IE8 css 选择器

于 2011-04-14T04:27:46.303 回答
1

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

<body class="ie7">

这样,在我的 CSS 中,我可以使用特定性为 ie7 赋予它自己的样式,而无需求助于 hack,也不必跨多个 css 文件管理样式。

.something {...style for good browsers...}
.ie7 .something {...fix IE 7 here...}
于 2011-04-14T04:28:05.730 回答