0

这里有很多关于在 javascript 中确定背景颜色的文章,但我还没有看到这个问题得到解决:假设我有一个空文档,没有别的,没有样式。两个元素的getcomputedstyle,背景颜色是“透明的”。但那是什么颜色?用户选择的默认值,通常是白色,但可以是任何值。所以没有办法找出那是什么?似乎是 DOM 中的一个缺陷。

4

2 回答 2

2

看看这家伙使用的技巧。本质上,获得真实颜色的唯一方法是继续处理父元素,直到找到提供颜色定义的元素。

当为 ID 为 someid 的元素调用时,上述方法将返回“透明”,但有两个例外:

Safari 将返回“rgba(0, 0, 0, 0)”,表示透明,因为第四个值代表不透明度,即 0。Konqueror 3.5 将返回“#000000”,它同时是黑色的Konqueror 的一个已知错误。我曾尝试使用 getPropertyCSSValue,但那个完全无聊......

现在,如果要检索元素的“真实”背景颜色,则必须递归地向上移动层次结构,直到找到没有透明背景的元素。但是,您必须在 document.body 处停止并假定白色作为背景色。

于 2013-03-30T17:56:02.953 回答
0

透明色是rgba(0,0,0,0)。它是 A=0 的任何 RGB,即 Alpha 必须设置为 0。

于 2013-03-30T18:44:54.447 回答