问题标签 [css-parsing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
28386 浏览

php - 通过正则表达式解析 CSS

我正在创建一个 CSS 编辑器,并试图创建一个可以从 CSS 文档中获取数据的正则表达式。如果我有一个属性,但我无法让它适用于所有属性,则此正则表达式有效。我在 PHP 中使用 preg/perl 语法。

正则表达式

测试用例

预期结果

实际结果

提前感谢您的帮助 - 这让我整个下午都感到困惑!

0 投票
4 回答
1875 浏览

css - 用 ANTLR 解析 CSS - 边缘情况

我正在尝试使用 ANTLR 解析 CSS,或者至少是基础知识。不过,我的词法分析器规则遇到了一些问题。问题在于 ID 选择器和十六进制颜色值之间的歧义。为了清楚起见,使用简化的语法,考虑以下输入:

以及以下解析器规则:

和这些词法分析器标记:

这不起作用,因为#bbb 被标记为颜色标记,即使它应该是一个选择器。如果我将选择器更改为不以十六进制字符开头,它可以正常工作。我不知道如何解决这个问题。有没有办法告诉 ANTLR 仅将特定标记视为颜色标记(如果它位于某个位置)?比如说,如果它在属性规则中,我可以安全地假设它是一个颜色标记。如果不是,则将其视为选择器。

任何帮助,将不胜感激!


解决方案:原来我试图在语法中做太多事情,我可能应该在使用 AST 的代码中处理。CSS 有太多模棱两可的标记,无法可靠地拆分成不同的标记,所以我现在使用的方法基本上是标记特殊字符,如'#'、'.'、':' 和花括号,并在消费者代码。效果更好,并且更容易处理边缘情况。

0 投票
2 回答
4855 浏览

css - 是否可以使用 Nokogiri 解析样式表?

我花了我必要的两个小时谷歌搜索这个,我找不到任何好的答案,所以让我们看看人类是否可以击败谷歌计算机。

我想在 Ruby 中解析样式表,以便可以将这些样式应用于文档中的元素(以使样式内联)。所以,我想采取类似的东西

并且能够将其提取到某种 Nokogiri 对象中。

Nokogiri 类“CSS::Parser”(http://nokogiri.rubyforge.org/nokogiri/Nokogiri/CSS/Parser.html)当然有一个很有前途的名字,但我找不到任何关于它是什么或如何的文档它有效,所以我不知道它是否可以做我在这里所追求的。

我的最终目标是能够编写如下代码:

这将从样式表中提取样式并将它们作为内联样式添加到我的文档中。

0 投票
1 回答
556 浏览

python - 使用 cssutils python 模块时 [dir=rtl] 的样式表解析错误

我正在使用cssutils python 模块解析 css 样式表。解析器在到达“[dir=ltr] div.row div.label”选择器时发出错误。

我想找到一种方法来修改 CSS 以使解析器满意并保持相同的功能。

这样做的标准方法是什么:

注意:“dir”用于控制诸如希伯来语或阿拉伯语等语言的文本方向。

http://www.unics.uni-hannover.de/nhtcapri/bidirectional-text.html

0 投票
4 回答
853 浏览

colors - 如何获得网站的主要颜色?

我在想是否有可能获得网站的“特征”颜色。例如,TechCrunch 是绿色的,ReadWriteWeb 是红色的,CNN 也是红色的,Microsoft 是蓝色的,PHP 是紫色的,等等……

它不一定是准确的,只是一个最好的猜测。

我的一些想法是:

  • 解析所有 CSS 规则并找到匹配最多元素的规则
  • 解析所有 css 规则并找到具有最大尺寸的元素的背景颜色
  • 获取 body 元素的背景图像并获取其主要颜色(这对于图像是否可能)
  • 以某种方式找到站点的“标题”(DOM 中的第一个元素,设置了背景 css 属性?)并获取其背景

我还需要一种方法来消除黑色、灰色和白色。

这可行吗?你还有其他建议吗?

PS对不起我的英语

0 投票
2 回答
73 浏览

javascript - 使用 JavaScript 区分页面

我很好奇如何让 JavaScript 区分两个几乎相同的页面(据我所知)具有相同的 div。像这样的页面的一个例子是Google Home Page vs. Google Search Results。无论如何我可以正确识别哪个是哪个?

0 投票
2 回答
1248 浏览

java - 解析时出现 CSSOMParser 错误

解析 css 文件all.css时出现以下错误

它看起来与损坏的 css 标签有关。有人可以澄清一下吗?我正在使用文件中的 css 规则来找出 html 页面上的某些元素(链接到 css)。这些错误实际上会影响 css 规则的解析,从而影响网页上 html 元素的分析吗?(我相信它会,但希望它不会)

提前致谢..

0 投票
1 回答
811 浏览

css-parsing - 按 ID 和 CLASS 选择器搜索 cssutils.py 解析树

我在 Python 中使用 cssutils 来解析 CSS 样式文件,并希望通过 ID 和 Class 搜索解析树。也就是说,给定一些 CSS 样式文件和一些类名(例如 div navbar),我如何确定这个选择器封装的样式规则?将高度赞赏有关在现有文档(http://packages.python.org/cssutils/index.htm )中查看位置的解决方案或任何想法

0 投票
2 回答
3661 浏览

php - PHP CSS Parser - 选择器声明到字符串

我希望能够读取 CSS 文件,并能够将给定选择器的所有声明提取到字符串中。例如,给定以下样式表:

我希望能够调用并获取 div.item,例如:

这应该给我一个像这样的字符串:

我一直在环顾四周,但找不到可以做到这一点的解析器。有任何想法吗?

仅供参考:我需要它能够从 CSS 转换选择器并将样式动态嵌入到电子邮件中的 HTML 元素中。

解决方案 编辑:我想出了自己的粗略解决方案并创建了一个类来做我正在寻找的东西。请参阅下面我自己的答案。

0 投票
1 回答
230 浏览

java - CSS 解析:使用 cssparser 匹配特定实体

对于我的一个使用 JSON Schema 验证 JSON 的项目,我错过了两个format规范的准确代码:colorstyle.

第一个规范 ,color表示在 CSS 2.1 中有效的任何颜色。第二个 ,style是 CSS 2.1 认为的样式。

我有两个问题:

  • 我不太了解 CSS。
  • 我有魔鬼的时间使用cssparser来完成这项工作。

当前代码(here forcolorhere for style)肯定会允许无效输入,并禁止潜在有效输入...另外,我希望我可以使用 jStyleParser(cssbox 项目的一部分),不幸的是它在 Maven 上不可用,即对我的要求。

如果可能的话,您如何使用它cssparser来准确识别上述两种格式规范?