【发布时间】:2011-11-07 03:47:54
【问题描述】:
在 jQuery 中,我们可以通过 css 方法轻松获取给定元素的 CSS 值:
$('#myElement').css('line-height'); // e.g. '16px'
现在,由于这个 CSS 值可能是从父元素继承的,有没有办法知道哪个元素应用了这个规则?
例如,假设我有以下 HTML:
<div class="parent">
<div id="myElement"></div>
</div>
以及以下 CSS:
.parent {
line-height: 20px;
}
在#myElement 上调用css 方法将返回20px,但不会表明它是从.parent 继承的。
我知道我可以启动 Web Inspector/Dev Tools/Firebug,但我想以编程方式获取它。
这可能吗?
【问题讨论】:
-
@pranay vadel:这会告诉我是否它是继承的,而不是从哪里继承的......
-
也许你应该看看code of Firebug,看看它是如何完成的。 Firebug 是用 JavaScript 编写的……
-
查看 Firebug 源代码是一个不错的建议,但代码肯定不平凡。我还担心它可能是特定于 Firefox 的,或者(更糟糕的是)依赖于仅适用于 XUL 应用程序(如 Firebug)的本机 API。也就是说,我已经将其追踪到 css.js (goo.gl/ahF90) 中 getElementRules() 函数中的“覆盖”逻辑,但没有时间进一步研究。
标签: javascript jquery inheritance css