【发布时间】:2016-01-19 00:44:04
【问题描述】:
我有一个需要用 javascript 处理的带有以下 css 的字符串
h1
{
color: red;
}
.info
{
border: 1px dotted blue;
padding: 10px;
}
#rect
{
background: pink;
}
h2,
h3,
h4
{
font-weight: bold;
}
table td:last td
{
background: gainsboro;
}
如何在每个规则中添加前缀 .page 以使 css 不会中断?
我想要这个结果
.page h1
{
color: red;
}
.page .info
{
border: 1px dotted blue;
padding: 10px;
}
...
现在,我通过寻找缩进来解决它,但是在这种情况下代码失败了
h1
{
color: red;
}
最后是
.page h1
{
.page color: red;
}
我也可以查找只有括号的行,但是这种情况会失败
h1 { color: red; }
我不想构建自己的 css 解析器,而我发现的那些主要处理应用于 DOM 中元素的 css 而不是带有 css 的字符串。是否有一个好的解析器或者可以通过其他方式实现?
【问题讨论】:
-
你需要解析它!
-
这个讨论在这种情况下可能会有所帮助:stackoverflow.com/questions/8302437/…
-
您应该查看返工工具套件 (github.com/reworkcss/rework)。它解析和转换,并且可以处理字符串。众所周知,尝试使用正则表达式解析语言是一个糟糕的主意。正如你所发现的,你会想出一些你认为可行的解决方案,然后你会发现你的“解决方案”会失效。
标签: javascript css css-parsing