RGBa是一種在CSS中聲明包含透明效果的顏色的方法,通過RGBa我們可以將一個元素設置為透明,而不會影響其子元素。但是并非所有的瀏覽器支持RGBa的背景色,其中用戶頗多的老版本IE瀏覽器就不支持,好在IE瀏覽器支持條件注釋,我們可以拋棄RGB并使用IE瀏覽器的一個私有CSS濾鏡來實現同樣的效果。上代碼:
<!--[if IE]>
<style type="text/css">
.color-block {
background:transparent;
filter: PRogid:DXImageTransform.Microsoft.gradient(startColorstr=#4B7D0000,endColorstr=#4B7D0000);
zoom: 1;
}
</style>
<![endif]-->
點擊查看在線演示
DXImageTransform.Microsoft.gradient濾鏡里的startColorstr參數值是#AARRGGBB形式的,其中的AA是代表不透明度的十六進制,00表示完全透明,FF就是全不透明,化成十進制的范圍就是0~255,剩下的RRGGBB就是顏色的十六進制代碼。例子中background: rgba(125, 0, 0, .3);表示的是30%不透明度的紅色背景。如何把30%的不透明度轉換成十六制呢?很簡單,先計算#AA的的十進制x,x/255 = 3/10,解得x=3*255/10,然后再把x換算成十六進制,約等于4B。
RGBa顏色還可以用于border,不過,不同的瀏覽器對于border的RGBa支持不太一樣,不過唯一的不同是,Firefox在border的拐角處會出現疊加,比如透明度是0.4,那么在Firefox中,四個角的透明度會變成0.8,而支持RGBa的非FF瀏覽器不會出現這種情況。
新聞熱點
疑難解答