2012-04-15 64 views
0

使用此:css progress bar我如何轉換RGB到HEX(爲漸變)

它的偉大,我們幾乎已經定製的每一個方面。問題是,我真的很討厭漸變,但它們都是rgba值。

有誰知道,如何將漸變更改爲十六進制值,以便我們可以完成樣式。

的(CSS我們)是:

background-color: #74d04c; 
/* Webkit background stripes and gradient */ 
background: -webkit-gradient(linear, 0 0, 44 44, color-stop(0, rgba(255, 255, 255, 0.17)), color-stop(0.25, rgba(255, 255, 255, 0.17)), color-stop(0.26, rgba(255, 255, 255, 0)), color-stop(0.5, rgba(255, 255, 255, 0)), color-stop(0.51, rgba(255, 255, 255, 0.17)), color-stop(0.75, rgba(255, 255, 255, 0.17)), color-stop(0.76, rgba(255, 255, 255, 0)), color-stop(1, rgba(255, 255, 255, 0))), -webkit-gradient(linear, left bottom, left top, color-stop(0, rgba(255, 255, 255, 0)), color-stop(1, rgba(255, 255, 255, 0.35))), #74d04c; 


background: -moz-linear-gradient(rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0) 100%), #74d04c; 
-moz-box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.4), inset 0px -1px 1px rgba(0, 0, 0, 0.2); 
-webkit-box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.4), inset 0px -1px 1px rgba(0, 0, 0, 0.2); 
-o-box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.4), inset 0px -1px 1px rgba(0, 0, 0, 0.2); 
box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.4), inset 0px -1px 1px rgba(0, 0, 0, 0.2); 
/* Give it a higher contrast outline */ 
border: 1px solid #4c8932; 

我只是不明白RGB(所以想看看我們如何能夠轉換爲#十六進位值)

即使一個鏈接就可以了。

乾杯

回答

1

通常的十六進制表示是簡單地轉換成十六進制(基數爲16),每人一個字節的紅色,綠色和藍色值。您的255,255,255將爲ffffff,0,0,0將爲000000。雖然這些都沒有顯示出來,但符號使用兩位數字,排列爲rrggbb,因此(例如)rgb = 1,2,3將轉換爲010203.

編輯:如果您對命令行感到滿意工具(並有機會獲得C或C++編譯器),你可能會發現像這樣一個比較容易的方法來進行轉換:

#include <stdio.h> 
#include <stdlib.h> 

int main(int argc, char **argv) { 
    if (argc != 4) { 
     fprintf(stderr, "Usage: cvt_hex r g b"); 
     return EXIT_FAILURE; 
    } 

    int r = atoi(argv[1]); 
    int g = atoi(argv[2]); 
    int b = atoi(argv[3]); 

    printf("%2.2x%2.2x%2.2x", r, g, b); 
    return 0; 
} 

一定要小心:這不出錯的方式嘗試多檢查,所以如果(例如)你給它一個大於255的值,它不會檢測到或警告你這個問題,只是產生一個無法正常工作的結果。

+0

Thankyou,我試圖找到一個rgb =>十六進制轉換網站。我知道這些值(如R,G,B)無法找到一個很好的資源來轉換它們,而不需要長時間將每個值輸入框中減去逗號。雖然會繼續下去,但我們確實可以弄明白。 – 422 2012-04-16 00:14:03

+1

@ 422:看到編輯的答案 - 不知道它是否會有所幫助,但如果你沒有命令行工具,它可能會。 – 2012-04-16 00:33:48

+0

好onya @傑裏棺材,欣賞,:) – 422 2012-04-16 00:37:20

3

您的示例使用透明度。用於定義透明顏色CSS3的規格是使用RGBA(R,G,B,A)

有一個在梯度的另一種語法用於使用HEX:

rgba(255, 255, 255, 0.25) => #FFFFFF 25% 

參見:http://gradients.glrzad.com/

此外,你真正應該檢查你「不得rgb」的理由。也許你應該花一些時間來認識到RGB是數字色彩中一個非常重要的概念。

+0

我得到什麼是RGB和他們的價值觀,我只是沒有得到一個方法將這些轉換爲十六進制值,我們明白。謝謝,爲了迴應,該網站很酷。我們經常使用它,但在這個問題上沒有幫助。 – 422 2012-04-16 00:15:00

+0

@ 422:嗯,從你的問題中不太清楚。你說你「沒有得到rgb」,所以我怎麼理解它。顯然你正在尋找一些自動轉換工具來翻轉你現有的CSS? – jdi 2012-04-16 00:17:29

+0

確切地說,好的粘貼類型他rbg值減去不透明度,並獲得十六進制值。原因是我們有大約100-200做,argg大聲笑。 – 422 2012-04-16 00:27:43