RGB色彩模式(也翻譯為“紅綠藍”,比較少用)是工業界的一種顏色標準,是通過對紅(R)、綠(G)、藍(B)三個色彩通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的,RGB即是代表紅、綠、藍三個通道的顏色,這個標準幾乎包括了人類視力所能感知的所有顏色,是目前運用最廣的顏色系統之一。
RGBA在RGB的基礎上多了控制alpha透明度的參數。以上R、G、B三個參數,正整數值的取值範圍為:0 – 255。百分數值的取值範圍為:0.0% – 100.0%。超出範圍的數值將被截至其最接近的取值極限。並非所有瀏覽器都支援使用百分數值。A參數,取值在0~1之間,不可為負值
RGBA文法:
div { background: rgba(0, 0, 0, 0.5);}
瀏覽器安全色性:
類型 |
Internet Explorer |
Firefox |
Chrome |
Opera |
Safari |
版本 |
(×)IE6 |
(√)Firefox 3.0.10 |
(√)Chrome 2.0.x |
(√)Opera 9.64 |
(√)Safari 4 |
(×)IE7 |
|
|
|
|
(×)IE8 |
|
|
|
|
(√)IE9 |
|
|
|
|
RGBA和opacity的區別
opacity會使整個元素包括子項目透明,而RGBA僅僅是元素本事透明,子項目不透明。
下面具體講講怎樣讓IE瀏覽器支援RGBA顏色
一、CSSPIE
CSSPIE可以讓color、background、
box-shadow支援RGBA
樣本:
div{color:rgba(0,0,0,.5);background:rgba(0,0,0,.5);-pie-background:rgba(0,0,0,.5);/*IE6-8*/box-shadow: 1px 1px rgba(0,0,0,.5);/*僅在未設定模糊值的情況下支援rgba*/}
二、filter
通過IE濾鏡讓背景色透明,類比rgba效果
樣本:
.filter{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#BF000000,endColorstr=#BF000000);}
我們需要留意的是StartColorStr和EndColorStr的值,前兩位是十六進位的透明度,後面六位是十六進位的顏色。
換算方法:x=alpha*255
將計算的結果x轉換成十六進位即可
background: rgba(50, 95, 224, .4); filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#886287a7', endColorstr='#886287a7');
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。