【发布时间】:2023-03-27 21:05:01
【问题描述】:
如何有效地获取没有背景但他的父母之一有背景的元素的颜色? 例如,这是 3 级深度集:
- TOP1 是红色的
- TOP2 为绿色
- TOP3 没有定义背景颜色,但它是绿色的。
我可以编写一个函数来通过父母发起攻击并找到 backgroundColor 属性,但我相信它并不可靠并且跨浏览器会很糟糕。
更新
我可能想澄清一下我为什么想要这样的东西。
我的一个案例:我正在为一个表格构建粘性标题,它将克隆表格的第一组列并将它们粘贴(位置:固定)用户滚动非常宽的表格。这样他们就可以看到他们正在查看的列。
有时表格有与之关联的样式,列有颜色,这些颜色可以从表格、容器或任何地方继承。这就是为什么我坚持使用 JavaScript 解决方案。
【问题讨论】:
-
看看
window.getComputedStyle。但旧 IE 版本不支持它。 -
@FelixKling - 我相信他需要更多的东西来解决最里面元素的背景被定义为透明的情况。
-
您确定想要找到第三个元素的背景颜色吗?通常这些问题都带有某种 hack 的味道,实际上您需要进行一些代码重构以将颜色状态保存在某个单独的数据结构中,而不是 CSS 样式中。
-
@techfoobar: 哦,我不知何故认为
background-color是继承的,但似乎并非如此:-/
标签: javascript