【发布时间】:2014-05-17 13:31:52
【问题描述】:
这是一个惊喜。以下代码似乎没有给我屏幕上的实际颜色:
h1 = document.querySelector("h1");
window.getComputedStyle(h1).color
给出rgb(0, 0, 0),我认为这是正确的。不过
window.getComputedStyle(h1).backgroundColor
给出rgba(0, 0, 0, 0)。我在屏幕上看到的实际背景颜色是白色。
我称之为 h1 的元素在屏幕上可见。我期待得到实际的背景颜色。我上面得到的值(在 rgba 中)没有错,但也不是很有用。它只是告诉我背景是完全透明的——那不是颜色。
如何获得 RGB 中的实际背景颜色?
【问题讨论】:
-
尝试使用dom遍历,如果当前元素的bg是透明的则检查父元素等等。
-
感谢@Tony,但 getComputedStyle 应该正是如此。
-
@Leo:你认为为什么应该这样做?
-
一个很好的问题,@Bergi。我现在意识到
background-color与其他值有点不同,因为它取决于父元素的background-color之外的许多其他东西。在另一个元素上测试,<span>,即使实际背景是黄色的,我也会再次得到这个rgba(0,0,0,0)。不涉及position、float等。该元素位于具有 CSS 黄色背景的包含元素的框内。但是,我可以看到决定返回rgba(0,0,0,0)的原因。 -
但是@Bergi,它仍然阻止我做我想做的事情。我想获得前景色和背景色之间的对比,以便我可以测试这部分的可访问性。现在看来,我认为这在 javascript 中是不可能的。
标签: javascript html css background-color getcomputedstyle