rgba() 的颜色 IE 后备不起作用
为什么 IE color: red;
的以下后备不起作用?
在 IE7 中,颜色为黑色
,而不是红色
。
现场演示
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);
}
第 3 方编辑
mozilla mdn on css color 列出了 color: value
的不同选项
- CSS 2 规范:
颜色:<值>
值可以是关键字red
或rgb(255,0,0)
- CSS 颜色模块级别 3(建议 2017-12)添加了 SVG 颜色、rgba()、hsl() 和 hsla() 函数,例如:
rgba(0,0,0,0)
Why the following fallback for IE color: red;
does not work ?
In IE7, the color is black
rather than 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);
}
3rd party edit
The mozilla mdn on css color lists the different options for color: value
- CSS 2 specification:
color: <value>
and value can be a keywordred
orrgb(255,0,0)
- CSS Color Module Level 3 (Recommendation 2017-12) added SVG colors, the rgba(), hsl(), and hsla() functions for example:
rgba(0,0,0,0)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
IE 不支持 RGBA。
但是,当它看到您的 color: 样式时,它会尝试对其进行评估并恢复为默认颜色 (#00000000)。
您可以在这里使用特定于IE的技巧,例如
但是,假设您试图仅影响背景颜色,而不是整个元素的不透明度,那么您最好使用一个过滤器将所需的 rgba 值设置为渐变的开始和结束颜色 - 创建 rgba 背景。
但请记住 - IE 假定 Alpha 是第一个,而不是最后一个,所以不要只是转换和复制您的值。
双滤镜分别适用于 IE6 和 IE7。
http://css-tricks.com/rgba-browser-support/
RGBA is not supported in IE.
However, as it sees your color: style, it attempts to evaluate it and reverts to the default color (#00000000).
You could use an IE specific hack here, such as
But, assuming that you are trying to affect only the background color, and not the opacity of the entire element, you're best off with a filter that sets the desired rgba value as the start and end color of a gradient - creating an rgba background.
But remember - IE assumes that the Alpha is first, not last, so don't just convert and copy your values.
The double filter is for IE6 and IE7 respectively.
http://css-tricks.com/rgba-browser-support/
将这两个颜色声明拆分为单独的 CSS 规则集可以解决此问题:
现在 IE 获得红色文本,更好的浏览器获得 RGBA 声明。
Splitting those two color declarations into separate CSS rulesets cures this problem:
Now IE gets red text, better browsers get the RGBA declaration.