在页面中设置一个半透明的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进制即可
本文介绍在不支持rgba()函数的IE8浏览器中如何设置半透明div。通过使用IE的filter属性,特别是progid:DXImageTransform.Microsoft.gradient(),可以实现不同透明度的效果。文章还提供了一个转换表,帮助开发者将rgba的透明度转换为IEfilter值。
509

被折叠的 条评论
为什么被折叠?



