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

Mis*_*hko 11 html css fallback colors internet-explorer-7

为什么IE的后续回退color: red;不起作用?
在IE7中,颜色black不是red.
现场演示

HTML:

<div>
    <span>Hello</span>
</div>
Run Code Online (Sandbox Code Playgroud)

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);
}
Run Code Online (Sandbox Code Playgroud)

第三方编辑

css颜色上mozilla mdn列出了不同的选项color: value

  • CSS 2规范:color: <value>和值可以是关键字redrgb(255,0,0)
  • CSS Color Module Level 3(推荐2017-12)增加了SVG颜色,rgba(),hsl()和hsla()函数,例如:rgba(0,0,0,0)

Sam*_*ody 11

IE中不支持RGBA.

但是,当它看到你的颜色:样式时,它会尝试对其进行评估并恢复为默认颜色(#00000000).你可以在这里使用IE特定的黑客,例如

*color: red;
Run Code Online (Sandbox Code Playgroud)

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

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

-ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000050,endColorstr=#99000050);
Run Code Online (Sandbox Code Playgroud)

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

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

  • 其次,没有办法在IE中设置文本颜色的透明度,您可以做的最好是将文本放入元素中,并设置元素的不透明度. (2认同)

the*_*ude 5

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

span {
    font-size: 2em;
    color: red;
}
span {
    color: rgba(250, 250, 97, 0.9);
}
Run Code Online (Sandbox Code Playgroud)

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