2013-02-01 24 views
0

CSS顏色名稱,有沒有一種方法,以覆蓋對JavaScript的轉換複雜的CSS顏色名稱將它們應用到DOM元素時RGB值。瀏覽器如何處理在源代碼

例如:document.getElementById("colorMe").style.background = "lightblue" 將設置div.style對象的背景= rgb(...)

然而,document.getElementById("colorMe").style.background = "blue"將設置div.style對象與背景= blue

我想繞過javascript如何將該顏色轉換爲RGB值爲複雜的顏色名稱。這可能嗎?

+0

如果你想做到這一點,我會用一些服務器以插入正確的值。 – Brad

+0

爲什麼不僅僅使用Chrome Inspector_而不是「查看源代碼」? –

+0

不是「查看源代碼」是否給你創作的源代碼? –

回答

2

對於不透明顏色,CSS顏色的標準化格式是rgb(R,G,B),對於半透明顏色,標準格式爲rgba(R,G,B,A)。不管你給出什麼樣的輸入,它都會被轉換爲這些格式之一作爲輸出,並且沒有什麼可以做到的。

但是,您可以保存到其他地方的名稱,如:

​​

然後只得到elem.getAttribute("data-color"),你有你lightblue輸入。

+0

在鉻檢查器中,我可以指定'style =「background:lightblue;」'的來源,所以這段代碼是有效的。那麼它是JavaScript,那是轉換價值?並且無法覆蓋該默認轉換? –

+0

這不是JavaScript,它只是瀏覽器如何在內部工作。例如,你可以* *'型等等',但瀏覽器將其轉換爲'等等' - 你不會看到這個當您檢索的DOM,就像你不除直到您找回顏色格式更改纔會看到。 –

+0

不幸的是我相信我不正確地問了這個問題。我不認爲這與瀏覽器有關,但javascript如何轉換'div.style'對象中的顏色。我可以做'div.style.background =「藍色」',它將其存儲爲「藍色」,但這樣做'div.style.background =「lightblue」'將其存儲爲'RGB(...)',所以後來,當我訪問javascript對象內部時,它不返回「lightblue」。我正在尋求重寫THAT功能。而不是瀏覽器。 –

0

有一個叫做網頁顏色標準...

http://en.wikipedia.org/wiki/Web_colors

當你的瀏覽器讀取lightblue它只是將它轉換爲173 216 230

+0

我知道,當它讀取紅色時,javascript不會將其轉換爲RGB,而會將其保留爲「紅色」。有沒有一種方法可以讓lightblue在通過javascript設置時不會在'div.style'對象內轉換? –

+0

不,但如果我明白你想要做什麼,你可以用element.setAttribute('data-color','lightblue')...來保存跟蹤那個顏色的東西... –