In the early days of the web, page designers were intent on creating ever more complex HTML in an effort to be able to organize how the content would appear on every browser. It became important to be able to render the page with pixel perfect accuracy. This was not the original intent of HTML.
With the introduction of CSS, designers were given a much larger range of tools with which to control the appearance of web pages. For some time CSS level 1 was thought to be sufficient. Eventually this was superseded by CSS level 2.
CSS is constructed from packages of rules, which are assembled into style-sheets.
There is no object model defined for style sheets as of DOM level 1. Until this is ratified in a later DOM specification, Netscape and MSIE continue to support mutually incompatible style sheet API specifications.
The DOM level 2 implementation of CSS style objects (the CSS Object model) provides a complex hierarchy of objects. These are only partly implemented in current browsers. The most complete implementation is in the MSIE-browser, and even then the objects are factored differently and the classes named in an MSIE specific manner.
The DOM CSS suite is embodied in the following classes: