The CSS Object Model is a set of APIs allowing to manipulate CSS from JavaScript. It is the pendant of DOM and HTML APIs, but for CSS. It allows to read and modify CSS style dynamically.
Reference
AnimationEvent
CaretPosition
CSS
CSSCharsetRule
CSSConditionRule
CSSCounterStyleRule
CSSFontFaceRule
CSSFontFeatureValuesMap
CSSFontFeatureValuesRule
CSSGroupingRule
CSSImportRule
CSSKeyframeRule
CSSKeyframesRule
CSSMarginRule
CSSMediaRule
CSSNamespaceRule
CSSPageRule
CSSRule
CSSRuleList
CSSStyleSheet
CSSStyleDeclaration
CSSSupportsRule
CSSVariablesMap
CSSViewportRule
ElementCSSInlineStyle
GeometryUtils
GetStyleUtils
LinkStyle
MediaList
MediaQueryList
PseudoElement
Screen
StyleSheet
StyleSheetList
TransitionEvent
Several other interfaces are also extended by the CSSOM-related specifications: Document
, Window
, Element
, HTMLElement
, HTMLImageElement
, Range
, MouseEvent
, and SVGElement
.
Tutorials
- Determining the dimensions of elements (it needs some updating as it was made in the DHTML/Ajax era).
- Managing screen orientation
Specifications
Specification | Status | Comment |
---|---|---|
CSS Object Model (CSSOM) | Working Draft | |
CSS Object Model (CSSOM) View Module | Working Draft | |
Screen Orientation API | Working Draft | |
CSS Fonts Module Level 3 | Candidate Recommendation | |
CSS Animations | Working Draft | |
CSS Transitions | Working Draft | |
CSS Custom Properties for Cascading Variables Module Level 1 | Working Draft | |
CSS Conditional Rules Module Level 3 | Candidate Recommendation | |
CSS Device Adaptation | Working Draft | |
CSS Counter Styles Level 3 | Candidate Recommendation |
Browser compatibility notes
All these features have been added little by little over the years to the different browsers: it was a quite complex process that can't be summarized in a simple table. Please refer to the specific interfaces for its availability.