rgba半透明背景兼容ie8,filter滤镜半透明写法

在一个页面中设置一个半透明的白色div。这个常规写法用rgba,只需要给这个div设置如下的属性即可:

background: rgba(255,255,255,.1);

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

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

所以在ie8中设置半透明就要费点脑子了。从大神那里得知可以使用ie的filter来解决这个问题,css代码如下:

<div class="div"></div>
<!--样式-->
<style type="text/css">
    .div{
        width:300px;
        height:300px;
        background: rgba(255,255,255,.1);
        filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#19ffffff,endColorstr=#19ffffff);
    }   
</style>

filter用法里面这个颜色“#19ffffff”是由两部分组成的,因为这里不需要做渐变,所以startColorstr,endColorstr颜色都是一样的。

第一部是#号后面的19 。是rgba透明度0.1的IEfilter值。从0.1到0.9每个数字对应一个IEfilter值。对应关系如下:

这里写图片描述

第二部分是19后面的六位 。这个是六进制的颜色值。要跟rgb函数中的取值相同。比如rgb(255,255,255)对应#ffffff;都是白色。
到这里,rgba的用法就可以兼容IE8了。

猜你喜欢

转载自blog.csdn.net/m0_37885651/article/details/79815225