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

JavaScript的CSS解析器?

萧明贤
2023-03-14
问题内容

Update 2018
:这个问题早在PostCSS出现之前就被问到了,我可能会使用它。

我想将一滴CSS解析为AST,以便为某些CSS指令添加前缀。

是否有CSS解析器可用于JavaScript或Node?

我搜索了NPM。我发现的唯一有用的结果是parser-lib,但是它是基于流的,看起来我需要为每个CSS节点编写自己的发射器。

更新: 我也找到了JSCSSP,但是它没有文档…


问题答案:

更新:
我之前提到过JSCSSP,它似乎有很多错误。显然,NPM上的css模块是最好的:

css = require 'css'

input = '''
  body {
    font-family: sans-serif;
  }
  #thing.foo p.bar {
    font-weight: bold;
  }
'''

obj = css.parse input
sheet = obj.stylesheet

for rule in sheet.rules
  rule.selectors = ('#XXX ' + s for s in rule.selectors)

console.log css.stringify(obj)

输出:

#XXX body {
  font-family: sans-serif;
}
#XXX #thing.foo p.bar {
  font-weight: bold;
}


 类似资料:
  • 问题内容: 我正在尝试在JavaScript中实现CSS的解析,以便: 被解析为对象: 首先,有没有可以使用的JavaScript / jQuery 库 ? 我的实现是非常基本的,因此我确信它绝对不是万无一失的。例如,它对于基本CSS可以正常工作,但对于以下类型的属性可以正常工作: 失败是因为我要分开成对使用。在这里,发生在中,因此它也会在该点分裂。 是否有其他方法可以做到这一点? 这是代码: 谢

  • 简单的例子 这个例子展示了如何从字符串中加载 CSS 样式: #include <LCUI.h> #include <LCUI/gui/css_library.h> #include <LCUI/gui/css_parser.h> ​ int main(void) { LCUI_Selector selector = Selector(".button"); LCUI_Style

  • 模版中默认的 CSS 文件并不依赖 conditional class names,conditional style sheets,或 Modernizr 的表现效果,尽可以放心按自己的偏好放手去干。 Normalize.css 为了确保所有浏览器的渲染效果更加一致且符合标准,我们引入了 Normalize.css——这是一个现代化、紧密结合 HTML 5 的可选方案,可以用来实现浏览器的 CS

  • 问题内容: 我正在寻找一个很好的JavaScript库来解析XML数据。它应该比与浏览器捆绑在一起的内置XML DOM解析器 容易得多。 我对使用JSON有点兴趣,并期待在XML的类似方面有所发展。 问题答案: 我为此使用jQuery。这是一个很好的例子: (编辑:注意-以下博客似乎已消失。) http://blog.reindel.com/2007/09/24/jquery-and-xml- r

  • CSS样式 Stylus完全支持常规的CSS样式解析,这意味着你无需寻求其它解析器,或指定特别的文件使用特别的样式。 例子 下面是个使用缩进方法的小样式: border-radius() -webkit-border-radius arguments -moz-border-radius arguments border-radius arguments body a font

  • 问题内容: 我需要在JavaScript源代码中添加一些轻量级语法糖,并使用基于JavaScript的构建系统对其进行处理。是否有任何用JavaScript编写的开源JavaScript解析器?在V8或类似的高性能JavaScript实现上运行时,它们是否相当快? 感谢您提供的任何指导! 问题答案: UglifyJS(JavaScript中的JS压缩器/美化器)包含一个完整的JavaScript解