在頁面中設置一個半透明的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進制即可