Javascript 确定透明背景色CSS的任何方法
这里有很多关于在javascript中确定背景颜色的文章,但我还没有看到这个问题得到解决:假设我有一个空文档,没有其他内容,没有样式。getcomputedstyle对于这两个元素,背景色为“透明”。那是什么颜色?用户选择的默认值通常为白色,但可以是任何内容。所以没有办法知道那是什么?看起来像是DOM中的一个缺陷。请检查Esi。获得真实颜色的唯一方法是继续处理父元素,直到找到一个提供颜色定义的元素 当为 ID为someid的元素,但有两个例外: Safari将返回“rgba(0,0,0,0)”,表示透明, 因为第四个值代表0的不透明度。康克勒 3.5将返回“#000000”,它是黑色的,同时也是Konqueror的已知错误。我尝试使用GetPropertyCSValue,但是 那一个完全坏了 现在,如果您想要检索一个对象的“真实”背景色 元素,则必须递归地向上移动层次结构,直到找到 没有透明背景的元素。你必须 但在document.body处停止,并假定白色为背景色Javascript 确定透明背景色CSS的任何方法,javascript,background-color,Javascript,Background Color,这里有很多关于在javascript中确定背景颜色的文章,但我还没有看到这个问题得到解决:假设我有一个空文档,没有其他内容,没有样式。getcomputedstyle对于这两个元素,背景色为“透明”。那是什么颜色?用户选择的默认值通常为白色,但可以是任何内容。所以没有办法知道那是什么?看起来像是DOM中的一个缺陷。请检查Esi。获得真实颜色的唯一方法是继续处理父元素,直到找到一个提供颜色定义的元素 当为 ID为someid的元素,但有两个例外: Safari将返回“rgba(0,0,0,0)”,
透明颜色为rgba(0,0,0,0)。它是任何A=0的RGB,即Alpha必须设置为0。有效颜色取决于下面的元素。在一个透明元素的范围内可能有多种不同的背景色。@Pointy,我可能不明白这里要问的是什么,你能帮我一点忙吗?它的
白色
(通常)在主体
的情况下,其他元素的颜色为父元素
可能重复:-根据那里的回答,答案是否定的,没有办法真正知道它是什么。@ Gordon考虑绝对或固定定位:对于任何给定像素的透明前景元素,背景取决于它背后的是什么。我想,也许可以通过位置相似的父对象查找DOM,并尝试找到一种不透明的颜色。。。。当元素以fixed
、absolute
或relative
@Pointy放置时,这种技术就会失败。代码中的什么会导致该技术在这些元素上失败?问题是,仅仅查看DOM并不能告诉您透明元素后面实际放置了哪些元素。元素本身可以在页面上的任何位置,不管DOM怎么说,而不是透明元素祖先的元素可能就在它后面。现在这个方法有时确实有效,但它不是100%确定的,而且可能很难判断。@Pointy啊,非常正确。谢谢你的解释!