是否可以确定命名颜色的十六进制值?

时间:2011-03-25 06:29:05

标签: javascript jquery css dom colors

  

可能重复:
  Javascript function to convert color names to hex codes

是否可以检索或计算浏览器当前用于命名颜色的十六进制值?例如,我希望能够做类似以下的事情:

(HTML)

<div id="container" style="background-color: lightgreen"></div>

(JavaScript的)

var container = document.getElementById("container");
var colorAsHex = getHexColor(container, "background-color");

充其量我希望得到一个我刚刚丢失的jQuery解决方案。最糟糕的是,只要我可以覆盖4种主流浏览器,我就可以使用特定于浏览器的黑客。

2 个答案:

答案 0 :(得分:3)

$('div').css('background-color')似乎正在运作......请参阅此示例link

答案 1 :(得分:1)

var namedColor = "lightgreen";
var rgbColor = $("<div></div>").css("background-color", namedColor).css("background-color");
var match = rgbColor.match(/(\d+),\s*(\d+),\s*(\d+)/);
var value = 
    (+match[1] << 16) + 
    (+match[2] << 8) + 
    (+match[3] << 0);
var hexColor = value.toString(16);
while (hexColor.length < 6) {
    hexColor = "0" + hexColor;
}
console.log("#" + hexColor)

演示herehere