關於RGBA顏色值


RGBA

RGBA的意思是(Red-Green-Blue-Alpha)它是在RGB上擴展包括了“alpha”通道,運行對顏色值設置透明度。

div {

background:rgba(255,0,0,0.5);

}

RGBA中,四個數字以逗號分隔開,前面三個數字標識這個顏色的RGB值,這個設置和RGB並沒有任何區別,RGBA也可以設置為百分比,后面的數字代表透明度,范圍在0-1之間。1表示不透明,在這里就相當於rgb(255,0,0),0表示全透明。

通常我們為了省略一個0:

div {

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

}

RGBA是CSS3引入的一個顏色的值。在CSS3中,我們可以用以下六種格式表示顏色,:

background:#f00;

background:red;

background:rgb(255,0,0);或者 rgb(100%,0%,0%);

background:rgba(255,0,0,1);

background:hsl(0,100%,50%);

background:hsla(0,100%,50%,1);

 

以上標識的都是紅色。

Can I use RGBA

image

最新版的瀏覽器都是支持RGBA的,IE8以下是不支持的,對於顏色有透明度的,可以使用RGBA,選擇對IE8優雅降級,使用RGB不支持透明度等。但是也有一些方法能夠使RGBA在IE跨瀏覽器支持:

使用支持透明度通道的圖片PNG。

還有一種辦法就是使用IE filter:

比如我想要一個50%透明度紅色的背景:

 

background:transparent;

filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7FFF0000,endColorstr=#7FFF0000);

zoom: 1;

image

這個就是利用IE filter填充了背景,我們使用透明度設置的是7F,也就是FF的一半代表透明。如果要設置10%透明度,就要把startColorstr=#19FF0000,endColorstr=#19FF0000.后面的六位代表顏色,前面的代表的是明度,而且是16進制的,按照透明度百分比計算出FF的的百分比。因為這里我們用的是ARGB,具體這里的計算我也沒太懂。

對比:10%透明度

image

 

image

在要求完美兼容的時候,我們可以使用IE filter 或者png圖片。但是一般不影響使用情況下,對IE8一下瀏覽采取降級,也是最明智的措施,獲得最新版的瀏覽器,可以讓用戶在過程中,這也是為未來着想。因為這種手段來迫使用戶獲得更好的用戶體驗,而且我們發現IE filter渲染的顏色並不標准。

 

總結:

RGBA在CSS3種是一個非常重要的顏色值,因為它支持alpha通道。增強了CSS對色彩的處理,我們回顧了RGBA的格式,RGBA前面的三個數字的格式和RGB並沒有差別,最好一個數字的范圍是0-1,代表透明度。有時我們省略0,只寫小數點和后面的數字。CSS中新增了一些顏色的表達方式,比如HSL等。為了讓RGBA做到跨瀏覽器支持我們要采取IE filter 或者PNG圖片 filter渲染並不是標准的,顏色值也是有偏差。我們在計算透明度的時候,在IE Filter中 要采用16進制的計算方式,50%的透明度是7F,也就是255的一半,127.在當前情況下,推薦使用RGBA,在不影響功能的前提下,可以對IE8以下瀏覽器不使用完美兼容的方案,對於影響功能時,可以使用 IE filter 和png.

最后我們提供一個計算IE filter 的網站,可以轉換RGBA 和  IE filter。http://kilianvalkhof.com/2010/css-xhtml/how-to-use-rgba-in-ie/ 。我在轉換IE filter是,都是先用255乘以透明度,然后在四舍五入,然后轉換成16進制的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM