Small module for fast and reliable DOM styling.
- detects prefixes as necessary, cached for performance
- converts numbers to
px
strings for common properties - normalizes for camel and dash case
var css = require('dom-css')
//set a style
css(element, 'position', 'absolute')
//will be set as "WebkitFontSmoothing" on Chrome
css(element, 'font-smoothing', 'none')
//set multiple styles
css(element, {
//can be camel or dash case
'background-color': 'blue',
//some properties use 'px' by default
left: 25,
top: 0,
marginTop: 0,
position: 'absolute'
})
//get the current style
css.get(element, 'position')
// -> 'absolute'
css.get(element, ['left', 'marginTop'])
// -> { left: '25px', marginTop: '0px' }
See the special cases for a list of px
-suffixed properties (same list is used in GreenSock API).
Styles an element with the css property
(dash or camel case) and a given value. value
is a string, or a number to be suffixed with 'px'
(special cases, see below).
A shorthand for setting multiple styles, where styles
is an object containing property:value
pairs.
Gets the inline style of element, where prop
is a string (like "borderRadius"
) or an array of strings. If an array of strings is given, an object is returned with key-value pairs representing the specified properties.
css.get(div, ['width', 'height']) => { width: "20px", height: "40px" }
Note: This does not provide the computed style!
The following properties are suffixed with 'px'
when their value is specified as a number.
top, right, bottom, left,
width, height, fontSize,
paddingLeft, paddingRight,
paddingTop, paddingBottom,
marginLeft, marginRight,
marginTop, marginBottom,
padding, margin, perspective
Special thanks to Paul Irish's gist for the prefix detection (now part of Modernizr).
MIT, see LICENSE.md for details.