3

我有一个网站的颜色主题,我正在处理刷新时的更改,并希望在我的 HTML 中显示 css 背景颜色属性。那可能吗?

IE

<footer>The color of the moment is <insert the background color attribute>. Refresh for a makeover</footer>

会显示类似

“当下的颜色是#DB0C0C。刷新以进行改造”

由于十六进制颜色会根据加载的样式表而变化,因此我不想对其进行硬编码。如果我有一个 ruby​​ 变量 @color which = #ff0000 并想在 html 中显示它,我可以做类似的事情

<%= @color%>

我想知道是否有任何方法可以做类似访问 CSS 属性的事情。

4

2 回答 2

2

你甚至不需要 jQuery。你可以只使用 vanilla javascript .getComputedStyle()

<span id='color-map'></span>

var element = document.getElementById("id-goes-here");
var style = window.getComputedStyle(element);

document.getElementById('color-map').innerHTML = style.backgroundColor;

但是,这似乎并没有将颜色作为十六进制,而是一个 'rpg(x, y, z)' 字符串。要从中获取十六进制,您可以使用正则表达式对其进行解析并返回结果:

function rgbsToHex(str) {
    var hex = "#";
    var matches = str.match(/rgb\((\d+),\s(\d+),\s(\d+)\)/);
    hex += Number(matches[1]).toString(16);
    hex += Number(matches[2]).toString(16);
    hex += Number(matches[3]).toString(16);
    return hex;
}

演示

于 2013-04-16T07:55:42.330 回答
0

您可以在 jQuery 中使用 .css() 函数。

$('footer').find('span').text($('.bg').css('background-color'));

这将为您提供 rgb 中的颜色,如果您想在 HEX 中显示它,请查看以获取更多信息。

于 2013-04-16T07:06:45.477 回答