CSSOM
CSSOM.js is a CSS parser written in pure JavaScript. It is also a partial implementation of CSS Object Model.
CSSOM.parse("body {color: black}")
-> {
cssRules: [
{
selectorText: "body",
style: {
0: "color",
color: "black",
length: 1
}
}
]
}
Parser demo
Works well in Google Chrome 6+, Safari 5+, Firefox 3.6+, Opera 10.63+. Doesn't work in IE < 9 because of unsupported getters/setters.
To use CSSOM.js in the browser you might want to build a one-file version that exposes a single CSSOM
global variable:
➤ git clone https://github.com/NV/CSSOM.git
➤ cd CSSOM
➤ node build.js
build/CSSOM.js is done
To use it with Node.js or any other CommonJS loader:
➤ npm install cssom
Don’t use it if...
You parse CSS to mungle, minify or reformat code like this:
div {
background: gray;
background: linear-gradient(to bottom, white 0%, black 100%);
}
This pattern is often used to give browsers that don’t understand linear gradients a fallback solution (e.g. gray color in the example). In CSSOM, background: gray
gets overwritten. It does NOT get preserved.
If you do CSS mungling, minification, or image inlining, considere using one of the following:
Tests
To run tests locally:
➤ git submodule init
➤ git submodule update