兼容ie8的rgba() 写法

在页面中设置一个半透明的div一般情况下使用rgba()函数,但在IE8情况下无法使用rgba()函数。

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

使用ie的filter来解决这个问题

background-color: rgba(0,0,0,0.5);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7F000000,endColorstr=#7F000000);

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

#后的颜色是由两部分组成的,前两位是rgba透明的IEfilter值。后六位是六进制的颜色值。

rgba透明度 IEfilter值

0.1

19

0.2

33

0.3

4C

0.4

66

0.5

7F

0.6

99

0.7

B2

0.8

C8

0.9

E5


将透明度*255,没有近卫直接舍去取整后转化为16进制即可

猜你喜欢

转载自blog.csdn.net/yuyuking/article/details/93744783