有没有办法列出网页的所有可用 css 类?

Posted

技术标签:

【中文标题】有没有办法列出网页的所有可用 css 类?【英文标题】:Is there a way to list all available css classes for a web page? 【发布时间】:2020-03-28 11:02:16 【问题描述】:

我想知道是否有一种简单的方法可以列出所有可用的 css 类,这些类通过 javascript 中的单个 html 页面加载,或者通过 chrome 或 firefox 中的开发者控制台加载。

谢谢

【问题讨论】:

这能回答你的问题吗? How to get a list of all loaded CSS classes in Google Chrome? 使用 ES6:[].concat(...[...document.querySelectorAll('*')].map(e=>[...e.classList])).filter((d,i,a)=>a.indexOf(d)==i).sort() 该脚本打印实际应用于页面中任何元素的所有类,它不列出已定义但未使用或删除的类 @JasonYaraghi 的脚本非常适合我的需要! 【参考方案1】:

有点晚了,但是……

  for (let link of document.querySelectorAll("link, style")) 
    try 
      if (!link.sheet) 
        console.warn("Warning:", "Property 'sheet' is not set on element", link)
       else
        for (let rule of link.sheet.rules) 
          console.log(rule.selectorText)
        ;
     catch (e) 
      console.warn("Warning:", e.message, ". Try set crossorigin='anonymous' on element", link)
    
  ;

或在 Chrome 开发工具窗口 (F-12) 中找到“样式”选项卡。在“过滤器”文本框的右侧有选项“.cls”。单击它,应该会出现“添加新类”。聚焦它并按Ctrl + Space。它应该列出当前打开的文档中所有可用的类。

This is how it looks like

【讨论】:

Property sheet 可能为 null,从而导致类型错误。你应该处理这种情况。 嗨 Zygmunt,很遗憾我的脚本出现了一些问题,因为由于浏览器的 cors 政策,似乎无法从 javascript 访问“规则”属性。但是我会接受您的回答,因为您对样式过滤器的建议很简洁并且有效。谢谢 尝试在链接元素上设置 crossorigin="anonymous"。像这样。让我知道它是否适合您。【参考方案2】:

是的,基本上你会启动控制台并输入:

document.querySelectorAll("*[class]");

在这种情况下,querySelectorAll 方法就像 CSS 属性选择器一样工作。在 MDN https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelectorAll 中阅读更多信息

【讨论】:

这是朝着正确方向迈出的一步,因为您实际上可以从该调用的结果中扣除该列表。我将对此进行更深入的研究,非常感谢您提供这些信息。【参考方案3】:

您可以轻松地按元素执行此操作,在 Chrome 开发工具中使用元素选项卡选择元素,然后转到“计算”选项卡,该选项卡显示每个元素附加的所有内容。

如果它是一个包含很多元素的大页面,并且您需要查看所有 CSS,我会直接查看元素并查看 head 或 header html 元素,然后直接查看文件。根据页面的架构,一些开发人员将其放在页脚元素以及一些内联元素中。

您也可以在 chrome 开发工具中按 CTRL+F 并编写“样式表”,它应该会拉出所有页面附加的 CSS 表格。

【讨论】:

不过,在 chrome 开发工具中,您可以获得链接到您选择的单个元素的所有类和样式,我想知道是否有可能拥有加载的每个样式表的完整 css 类列表页面 是的,我明白了,但这就是为什么我能说的最好的就是“有点”。您可以一次查看一个文件并自己编译它们,但是,我不确定如何在一个语句或视图中执行此操作,而无需编写一些特殊的 javascript 来为您编译它们。

以上是关于有没有办法列出网页的所有可用 css 类?的主要内容,如果未能解决你的问题,请参考以下文章

列出 Erlang 中进程可用的可用记录

有没有办法将类中的枚举属性设置为所有可用的枚举?

pyomo 列出可用的求解器

Bootstrap 中可用的文本颜色类

如何列出集群中所有可用的 Kafka 代理?

有没有办法强制 div 内的浮动 div 元素仅使用 css 和 html 垂直占据可用空间?