3
0
Fork 0
mirror of https://gitea.com/actions/setup-python.git synced 2024-11-29 05:29:34 +01:00
setup-python/node_modules/cssstyle
Danny McCormick 39c08a0eaa Initial pass
2019-06-26 21:12:00 -04:00
..
lib Initial pass 2019-06-26 21:12:00 -04:00
scripts Initial pass 2019-06-26 21:12:00 -04:00
tests Initial pass 2019-06-26 21:12:00 -04:00
.eslintignore Initial pass 2019-06-26 21:12:00 -04:00
.eslintrc.js Initial pass 2019-06-26 21:12:00 -04:00
.travis.yml Initial pass 2019-06-26 21:12:00 -04:00
MIT-LICENSE.txt Initial pass 2019-06-26 21:12:00 -04:00
package.json Initial pass 2019-06-26 21:12:00 -04:00
README.md Initial pass 2019-06-26 21:12:00 -04:00

CSSStyleDeclaration

NpmVersion Build Status

CSSStyleDeclaration is a work-a-like to the CSSStyleDeclaration class in Nikita Vasilyev's CSSOM. I made it so that when using jQuery in node setting css attributes via .fn.css() would work. node-jquery uses [jsdom](https://github.com/tmpvar/jsdom) to create a DOM to use in node. jsdom uses CSSOM for styling, and CSSOM's implementation of the [CSSStyleDeclaration](http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration) doesn't support [CSS2Properties](http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSS2Properties), which is how jQuery's [.fn.css()](http://api.jquery.com/css/) operates.

Why not just issue a pull request?

Well, NV wants to keep CSSOM fast (which I can appreciate) and CSS2Properties aren't required by the standard (though every browser has the interface). So I figured the path of least resistance would be to just modify this one class, publish it as a node module (that requires CSSOM) and then make a pull request of jsdom to use it.

How do I test this code?

npm test should do the trick, assuming you have the dev dependencies installed:

$ npm test

tests
✔ Verify Has Properties
✔ Verify Has Functions
✔ Verify Has Special Properties
✔ Test From Style String
✔ Test From Properties
✔ Test Shorthand Properties
✔ Test width and height Properties and null and empty strings
✔ Test Implicit Properties