为什么以下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
color: <value>
和值可以是关键字red
或rgb(255,0,0)
rgba(0,0,0,0)
答案 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。
答案 1 :(得分:5)
将这两个颜色声明拆分为单独的CSS规则集可以解决此问题:
span {
font-size: 2em;
color: red;
}
span {
color: rgba(250, 250, 97, 0.9);
}
现在IE获取红色文本,更好的浏览器获得RGBA声明。