咨询电话:
15628812133
27
2017/06

rgba()用法如何兼容ie8?

发布时间:2017-06-27 14:04:22
发布者:jiangbing
浏览量:
0

在我们文汇软件的爱加海外月子中心的项目中遇到了一个问题,要在一个页面中设置一个半透明的黑色div。这个貌似不是难题,只需要给这个div设置如下的属性即可:

background: rgba(0,0,0,.5);

blob.png

但是要兼容到ie8,这个就有点头疼了。因为ie8不支持rgba()函数。下面总结一下rgba()函数的含义。

rgba的含义,r代表red,g代表green,b代表blue,红绿蓝是三原色。所有颜色都可以由这三种颜色拼合而成。a代表透明度。比如rgba(0,0,0,0.5)就是透明度为0.5的黑色。在现代浏览器中是支持rgba的。但是在ie8等古董级浏览器中是不支持的rgba的,ie8只能勉强支持rgb()函数(即去掉了透明度,只能表示颜色)。

后来也是各种找,得知可以使用ie的filter来解决这个问题,css代码如下:

background: rgba(0,0,0,.5);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7f000000,endColorstr=#7f000000);

第二句话的意思是当上一行的透明度不起作用的时候执行。这句话的意思本来是用来做渐变的,但是这个地方不需要渐变,所以两个颜色都设置成了相同的颜色。

注意,这个颜色“#7f000000”是由两部分组成的。第一部是#号后面的7f 。是rgba透明度0.5的IEfilter值。从0.1到0.9每个数字对应一个IEfilter值。对应关系如下:

blob.png

第二部分是7f后面的六位,这个是六进制的颜色值,要跟rgb函数中的取值相同。比如rgb(0,0,0)对应#000000;都是黑色。

这样,rgba的用法就可以兼容IE8了。

演示地址:http://www.cnwenhui.cn/d/demo/rgba/

关键词:
返回列表