【问题标题】:Cant define a CSS rule only for IE9 and below不能只为 IE9 及以下版本定义 CSS 规则
【发布时间】:2016-10-31 18:22:17
【问题描述】:

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

<!--[if lte IE 9]>
.gradient {
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient (GradientType=0, startColorstr=#bbb69c, endColorstr=#ffffff)";
}
<![endif]-->

它没有工作。除非我去掉条件标签,否则 Internet Explorer 9 无法理解它。

这是为什么呢?

谢谢。

【问题讨论】:

标签: css internet-explorer-9


【解决方案1】:

在样式标签中嵌入了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>

【讨论】:

  • 不错,但我真的不想弄乱 html。只有css。
【解决方案2】:

您只能在条件 cmets 中添加 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)";
}

【讨论】:

  • 我已经知道这个技巧,但我想在同一个样式表中完成。
  • @CainNuke 是的,你说过你想这样做,但有时你只需要遵守规则。
  • 如果真的没有办法按照我的意愿去做,我就放弃了。但我非常相信有办法。
【解决方案3】:

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

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

【讨论】:

    猜你喜欢
    • 2011-11-13
    • 2014-11-19
    • 2014-02-24
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多