Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 确定透明背景色CSS的任何方法_Javascript_Background Color - Fatal编程技术网

Javascript 确定透明背景色CSS的任何方法

Javascript 确定透明背景色CSS的任何方法,javascript,background-color,Javascript,Background Color,这里有很多关于在javascript中确定背景颜色的文章,但我还没有看到这个问题得到解决:假设我有一个空文档,没有其他内容,没有样式。getcomputedstyle对于这两个元素,背景色为“透明”。那是什么颜色?用户选择的默认值通常为白色,但可以是任何内容。所以没有办法知道那是什么?看起来像是DOM中的一个缺陷。请检查Esi。获得真实颜色的唯一方法是继续处理父元素,直到找到一个提供颜色定义的元素 当为 ID为someid的元素,但有两个例外: Safari将返回“rgba(0,0,0,0)”,

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

请检查Esi。获得真实颜色的唯一方法是继续处理父元素,直到找到一个提供颜色定义的元素

当为 ID为someid的元素,但有两个例外:

Safari将返回“rgba(0,0,0,0)”,表示透明, 因为第四个值代表0的不透明度。康克勒 3.5将返回“#000000”,它是黑色的,同时也是Konqueror的已知错误。我尝试使用GetPropertyCSValue,但是 那一个完全坏了

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


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

有效颜色取决于下面的元素。在一个透明元素的范围内可能有多种不同的背景色。@Pointy,我可能不明白这里要问的是什么,你能帮我一点忙吗?它的
白色
(通常)在
主体
的情况下,其他元素的颜色为
父元素
可能重复:-根据那里的回答,答案是否定的,没有办法真正知道它是什么。@ Gordon考虑绝对或固定定位:对于任何给定像素的透明前景元素,背景取决于它背后的是什么。我想,也许可以通过位置相似的父对象查找DOM,并尝试找到一种不透明的颜色。。。。当元素以
fixed
absolute
relative
@Pointy放置时,这种技术就会失败。代码中的什么会导致该技术在这些元素上失败?问题是,仅仅查看DOM并不能告诉您透明元素后面实际放置了哪些元素。元素本身可以在页面上的任何位置,不管DOM怎么说,而不是透明元素祖先的元素可能就在它后面。现在这个方法有时确实有效,但它不是100%确定的,而且可能很难判断。@Pointy啊,非常正确。谢谢你的解释!