rgba()的颜色IE回退不起作用

时间:2010-07-13 10:48:32

标签: html css internet-explorer-7 colors fallback

为什么以下IE color: red;的后备不起作用?
在IE7中,颜色为black而不是red Live demo here

HTML:

<div>
    <span>Hello</span>
</div>

CSS:

div {
    width: 200px;
    height: 100px;
    background-color: blue;
    text-align: center;
}
span {
    font-size: 2em;
    color: red;
    color: rgba(250, 250, 97, 0.9);
}

第三方编辑

mozilla mdn on css color列出了color: value

的不同选项

2 个答案:

答案 0 :(得分:11)

IE中不支持RGBA。

然而,当它看到你的颜色:样式时,它会尝试评估它并恢复为默认颜色(#00000000)。 你可以在这里使用IE特定的黑客攻击,例如

*color: red;

但是,假设您试图仅影响背景颜色,而不是整个元素的不透明度,那么最好使用过滤器将所需的rgba值设置为渐变的开始和结束颜色 - 创建一个rgba背景。

filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000050,endColorstr=#99000050);

-ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000050,endColorstr=#99000050);

但请记住 - IE假设Alpha是第一个,而不是最后一个,所以不要只是转换和复制你的值。 双重过滤器分别用于IE6和IE7。

http://css-tricks.com/rgba-browser-support/

答案 1 :(得分:5)

将这两个颜色声明拆分为单独的CSS规则集可以解决此问题:

span {
    font-size: 2em;
    color: red;
}
span {
    color: rgba(250, 250, 97, 0.9);
}

现在IE获取红色文本,更好的浏览器获得RGBA声明。