对于现代浏览器,我使用background: rgba(0, 0, 0, 0.75);
作为完整的视口div叠加。
它不能用于IE8及以下版本,所以我搜索了一个解决方案,我在css3tricks上找到了这个,但稍微调整了一下这些值:
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000,endColorstr=#99000000);
它有效,但它不等同于background: rgba(0, 0, 0, 0.75);
。 < - 这一个看起来比另一个亮。但是我已经将MS滤镜的不透明度设置为99%,但它仍然显得更亮。
有人知道我怎么能得到相同的结果吗?
答案 0 :(得分:2)
引自MSDN http://msdn.microsoft.com/en-us/library/ms532930%28v=vs.85%29.aspx:
颜色以#AARRGGBB格式表示,其中AA是alpha十六进制值,RR是红色十六进制值,GG是绿色十六进制值,BB是蓝色十六进制值。 alpha值控制对象的不透明度。 alpha值为00是透明的,而FF值是不透明的。
这意味着:
#3f000000 == rgba(0, 0, 0, .25)
#7e000000 == rgba(0, 0, 0, .50)
#bd000000 == rgba(0, 0, 0, .75)
所以下面的CSS应该在IE6,IE7和IE8上产生等效的背景:
background-color: rgba(0, 0, 0, 0.75);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#bd000000,endColorstr=#bd000000);
您应该将filter
属性放在条件CSS中,用于< IE9,否则IE9似乎同时应用这两个属性,结果会变暗。
但是,我建议使用一个小的半透明PNG,其所需的颜色为background-image
background-repeat: repeat;
,以便在需要时提供更好的浏览器支持。