当前位置: 首页 > 面试题库 >

查找适用于元素的所有CSS规则

刘才俊
2023-03-14
问题内容

许多工具/ API提供了选择特定类或ID的元素的方法。也可以检查浏览器加载的原始样式表。

但是,对于浏览器渲染元素而言,它们将编译所有CSS规则(可能来自不同的样式表文件)并将其应用于元素。这是您在Firebug或WebKit
Inspector中看到的-元素的完整CSS继承树。

如何在不需要其他浏览器插件的情况下用纯JavaScript重现此功能?

也许一个例子可以澄清我在寻找什么:

<style type="text/css">
    p { color :red; }
    #description { font-size: 20px; }
</style>

<p id="description">Lorem ipsum</p>

在这里,p#description元素应用了两个CSS规则:红色和20 px的字体大小。

我想找到这些计算的CSS规则的来源(颜色来自p规则,依此类推)。


问题答案:

编辑:现在不赞成使用此答案,并且[不再适用于Chrome64+。留给历史背景。实际上,错误报告链接回此问题,以提供使用此问题的替代解决方案

经过一个多小时的研究,看来我设法回答了自己的问题。

就这么简单:

window.getMatchedCSSRules(document.getElementById("description"))

(适用于WebKit / Chrome,也可能适用于其他工具)



 类似资料:
  • 问题内容: 我有3个div。 像这样: 他们将充满文字。我不确定多少。问题是,所有高度都必须相等。 我如何使用jQuery(或CSS)查找DIV最高的并将其他两个设置为相同的高度,从而创建3个相等高度的DIV。 这可能吗? 问题答案: 您不能轻松地通过高度选择或在CSS中进行比较,但是jQuery和一些迭代应该可以轻松解决此问题。我们将遍历每个元素并跟踪最高的元素,然后再次遍历并将每个元素的高度设

  • 问题内容: 我想将CSS文件应用于页面中的具体DIV。这是页面结构: 我试图应用CSS文件的规则来编辑它(CSS文件太大): 但是该解决方案不起作用。那么,我该怎么做呢? 问题答案: 您可以尝试: 等等,这就是您想要的吗?

  • 问题内容: 是否有一种方法可以根据将class属性的值设置为两个特定的类来选择CSS元素。例如,假设我有3个div: 基于它是foo AND bar类的成员,我可以写什么CSS来选择列表中的第二个元素? 问题答案: 链接两个类选择器(之间没有空格): 如果仍然需要处理IE6之类的古老浏览器,请注意,它无法正确读取链接的类选择器:无论您列出什么其他类,它都只会读取 最后一个 类选择器(在这种情况下)

  • 问题内容: 完成ajax查询后,我在下面有以下javascript 我所有的图像都有名称=“ pic” 我的目标是在使用此库的周围应用图像边框: http://www.netzgesta.de/instant/ 问题在于,由于某种原因,这可行,但似乎仅适用于其他所有图片,而不是其他所有图片。任何线索为什么上面的代码会跳过其他所有元素? 编辑:我在循环中添加了一个警报,它确实正确地转到0,1,2,3

  • 问题内容: 我想在单词中镜像字母,所以我使用了CSS变换属性,但是如果我将文本包裹在一个范围内则无法使用,但是如果我选择了ass或 那么转换不适用于内联元素吗? 示例1(转换失败) 示例2(Works,如果使用OR) 问题答案: 在官方W3规范中,在可转换元素下回答: 一个元素,其布局由CSS框模型控制,该CSS框模型可以是 块级 或 原子内联级元素 ,或者其“ display”属性可以计算为“

  • 问题内容: 我今天一直在测试Javascript CSS函数,并注意到当使用.style.cssText时,它仅提供了我用JS设置的CSS。 相反,我想获取元素的所有CSS,所以我猜我在做错什么,或者可能需要另一个函数,例如getComputedStyle,但要使用整个CSS而不是单个属性值,但是我找不到搜索时需要的东西。 所以我的问题是如何从代码的最后部分获得完整的CSS,例如: 而不是当前输出