我已经习惯了对 IE 和非 IE 浏览器有不同规则的样式表。例如,我一直在使用 CSS3 Pie 在 IE 中生成圆角和渐变。
问题是 IE 9 支持圆角和渐变,并且不再需要这种变通方法。如何重写我的样式表以确保这些行为仅适用于 IE 8-,而不适用于 IE 9?
谢谢!
编辑:这是来自 CSS3 Pie 站点的示例,其中规则对于 IE 9 是多余的:http: //css3pie.com/demos/tabs/
我已经习惯了对 IE 和非 IE 浏览器有不同规则的样式表。例如,我一直在使用 CSS3 Pie 在 IE 中生成圆角和渐变。
问题是 IE 9 支持圆角和渐变,并且不再需要这种变通方法。如何重写我的样式表以确保这些行为仅适用于 IE 8-,而不适用于 IE 9?
谢谢!
编辑:这是来自 CSS3 Pie 站点的示例,其中规则对于 IE 9 是多余的:http: //css3pie.com/demos/tabs/
通常的方法是为每个版本使用条件注释和单独的补丁样式表:
<!--[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 通常需要不同的组件,所以我将它们放在不同的样式表中。
如果我们看不到原件,很难告诉你如何重写。一般来说,处理 IE 的常见最佳实践是以某种形式使用 IE 的条件注释。我通常做的是通过所说的注释写出带有与特定版本的 IE 匹配的类的 body 标记。所以,对于 IE7,我可能会这样结束:
<body class="ie7">
这样,在我的 CSS 中,我可以使用特定性为 ie7 赋予它自己的样式,而无需求助于 hack,也不必跨多个 css 文件管理样式。
.something {...style for good browsers...}
.ie7 .something {...fix IE 7 here...}