在页面中设置一个半透明的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进制即可