CSS consists of several levels of development. CSS Level 1 was formally proposed to the W3C in 1995, and officially adopted as a standard at the end of 1996. CSS Level 2 was created the year after, and accepted as a standard in 1998. The development of CSS3 was started that same year, with a different approach: rather than developing one monolithic standard, the specification was broken into separate modules, each with its own development track. Many of these modules are still officially in development (“draft”) as of this writing, although many browsers support CSS3 proposals.

It is important to note that each of these levels builds upon the last: each adds to the other, and as a rule does not replace or deprecate what was developed previously. Using CSS1 now is still as valid as it was ten years ago.

What has changed is browser support. Early browser support for CSS was slipshod, haphazard, and bug-ridden. While the situation has improved markedly over the last dozen years, there are still some issues. A quick summary of the current state of play is below:

IE 11
Good support for CSS3, some aspects still missing.
IE 9+
Version 9 adds some HTML5 support, with limited support for CSS3 (no CSS3 gradients, for example). IE 10 has excellent support for both HTML5.
Firefox
Firefox 40 (the latest version, as of this writing) has excellent support for all levels of CSS.
Safari
Version 8 has excellent support for CSS3. Uses the Webkit rendering engine.
Opera
Version 30 (again, the latest version as of this writing) has excellent support for CSS and HTML5, particularly in forms. Previously used the Presto rendering engine, but is transitioning to Blink. An under-appreciated browser with an excellent web development environment which is also strong on mobile platforms.
Chrome
Google's browser uses the same Blink rendering engine, and can be considered on par with the others terms of CSS and HTML5 support.

Enjoy this piece? I invite you to follow me at twitter.com/dudleystorey to learn more.