为什么IE的后续回退 color: red;
不起作用?
在IE7中,颜色是 black
而不是 red
。
现场演示
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);
}
第三方编辑
该 关于css颜色的mozilla mdn 列出了不同的选项 color: value
- CSS 2规范:
color: <value>
和值可以是关键字 red
要么 rgb(255,0,0)
- CSS颜色模块3级 (推荐2017-12)增加了SVG颜色,rgba(),hsl()和hsla()函数,例如:
rgba(0,0,0,0)
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/
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/
将这两个颜色声明拆分为单独的CSS规则集可以解决此问题:
span {
font-size: 2em;
color: red;
}
span {
color: rgba(250, 250, 97, 0.9);
}
现在IE获取红色文本,更好的浏览器获得RGBA声明。