相容ie8 rgba 用法

2022-09-01 18:15:08 字數 1026 閱讀 2932

昨天遇到乙個問題,要實現乙個背景透明的效果,用css3用rgba()就能實現,即

background: rgba(0,0,0,.5);

但是要相容到ie8,就發現沒有透明效果,因為ie8不支援rgba()函式。下面我們總結一下rgba()函式的含義。

rgba的含義,r代表red,g代表green,b代表blue,a代表透明度。紅綠藍是三原色,所有顏色都可以由這三種顏色拼合而成。比如rgba(0,0,0,.5)就是透明度為0.5的黑色。現代瀏覽器是支援rgba的,但是在ie8等古董級瀏覽器中是不支援rgba的,ie8只能勉強支援rgb()函式(即去掉了透明度,只能表示顏色)。

不過網上有這樣的解法

background: rgb(0, 0, 0);    /*不支援rgba的瀏覽器*/

background: rgba(0,0,0,.5); /*支援rgba的瀏覽器*/

filter:progid:dximagetransform.microsoft.gradient(startcolorstr=#7f000000,endcolorstr=#7f000000); /*ie8支援*/

第二句話的意思就是當上一行的透明度不起作用的時候執行。這句話的意思本來是用來做漸變的,但是這個地方不需要漸變。所以兩個顏色都設定成了相同的顏色。

解釋下#7f000000,第一部分是#號後面的7f。是rgba透明度0.5的iefilter值。從0.1到0.9每個數字對應乙個iefilter值。對應關係如下:

第二部分是19後面的六位。這個是六進製制的顏色值。要跟rgb函式中的取值相同。比如rgb(0,0,0,)對應#000;都是黑色。

到這裡,rgba的用法就可以相容ie8了。

最近看到,不直接在樣式裡面新增filter,而是利用來為ie新增filter相容。在過後又發現ie9同時支援rgba和filter,導致兩個重疊,透明效果變差,所以需要改為,

具體做法如下:

相容ie8 rgba 用法

dximagetransform.microsoft.gradient濾鏡裡的startcolorstr引數值是 aarrggbb形式的,其中的aa是代表不透明度的十六進製制,00表示完全透明,ff就是全不透明,化成十進位制的範圍就是0 255,剩下的rrggbb就是顏色的十六進製制 例子中back...

相容ie8 的rgba 的用法

rgba透明度相容ie rgba的含義,r代表red,g代表green,b代表blue,紅綠藍是三原色。所有顏色都可以由這三種顏色拼合而成。a代表透明度。比如rgba 255,255,255,0.1 就是透明度為0.1的白色。在現代瀏覽器中是支援rgba的。但是在ie8等古董級瀏覽器中是不支援的rg...

IE8相容rgba 濾鏡filter的用法

今天遇到了乙個問題,要在乙個頁面中設定乙個半透明的白色div。這個貌似不是難題,只需要給這個div設定如下的屬性即可 css view plain copy background rgba 255,255 255,1 但是要相容到ie8。這個就有點蛋疼了。因為ie8不支援rgba 函式。下面我們總結...