无法仅为IE9及更低版本定义CSS规则

时间:2016-06-29 07:20:34

标签: css internet-explorer-9

我想为IE9及以下版本定义一个CSS规则,所以我在我的样式表中包含了这一行:

<!--[if lte IE 9]>
.gradient {
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient (GradientType=0, startColorstr=#bbb69c, endColorstr=#ffffff)";
}
<![endif]-->
它没有用。除非取消条件标记,否则Internet Explorer 9无法理解它。

为什么?

谢谢。

3 个答案:

答案 0 :(得分:0)

您只能在条件注释中添加HTML代码。您的页面结构应如下所示:

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <!--[if lte IE 8]>
        <link rel="stylesheet" type="text/css" href="ie9.css">
    <![endif]-->
    <body>
        // body content goes here...
    </body>
</html>

在ie9.css中你可以定义你的css

.gradient {
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient (GradientType=0, startColorstr=#bbb69c, endColorstr=#ffffff)";
}

答案 1 :(得分:0)

将css嵌入样式标记。

<html class="ie9-fix">
    <head>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <!--[if IE]>
       <style>
.gradient {
    -ms-filter: "progid:DXImageTransform.Microsoft.gradient (GradientType=0, startColorstr=#bbb69c, endColorstr=#ffffff)";
}
</style>
    <![endif]-->
    <body>
        // body content goes here...
    </body>
</html>

答案 2 :(得分:0)

好的,我想我找到了答案。这似乎有效。

@media screen and (min-width:0\0) {
gradient {-ms-filter: "progid:DXImageTransform.Microsoft.gradient (GradientType=0, startColorstr=#bbb69c, endColorstr=#ffffff)";
}