CSS Versions

The first CSS specification, CSS1, became a World Wide Web Consortium (W3C) recommendation in December 1996. It included properties for controlling typography, such as fonts, text alignment, spacing, margins, and list formatting. It allowed the designer to specify the dimensions of block-level boxes and to surround boxes with borders. Yet, when it came to layout and design, CSS1 didn’t have much to offer: you could specify foreground and background colors and background images, and you could float a box to the left or to the right and make text flow around it.

CSS2 came out in 1998, and contained a lot of the features that designers had been longing for. Boxes could be made to behave like HTML table cells, or they could be positioned in different ways; more powerful selectors were available; style sheets could be imported into other style sheets; style rules could be specific to certain output media; and so on. Vast improvements had also been made in the areas of paged media (printing), and the generation of content from the style sheet.

As it turned out, some parts of CSS2 were very difficult to implement, so the W3C decided to revise the specification and adapt it to real-world situations. Most of the special features for paged media were removed. The creation of generated content was restricted to the :before and :after pseudo-elements, and restrictions were placed on how generated content could be styled.

The name of the revised version was “Cascading Style Sheets, Level 2 Revision 1”—CSS2.1 for short.

Note: References to CSS2 Mean CSS2.1

Today, references to CSS2 usually mean CSS2.1, since the original CSS2 was never really implemented by any browser.

In this reference, we’ll use the term CSS2 when we refer to Level 2 of the CSS specification (as opposed to CSS1 or CSS3). Unless we explicitly state otherwise, this term refers to CSS2.1, which is the latest—and current—revision of the CSS2 specification.

The work on CSS3 has been going on for years, but seems to advance very slowly. CSS3 is divided into modules, and the idea is that each module can become a recommendation independently from the others. No module has reached that stage, but some parts of the CSS3 specification have already been implemented by browsers.

Some features in the CSS3 working drafts that have already been implemented include multi-column output of text, rounded corners on borders, opacity control, HSL/HSLA/RGBA colors, and text shadows (a part of CSS2 that was removed in CSS2.1).

The CSS3 selectors module will be released separately from the rest of CSS3. Some of those selectors are already implemented in modern browsers.

User-contributed notes

by gbodave
Sat, 05 Jan 2008 23:27:38 GMT

I think this is falling between several stools.

1. The heading is "what is CSS" implying that the target audience are beginners then quite quickly the technicalities start coming in.

2. Why complicate things with references to css 1, css 2 and cs 3. If a rule or selector is still in use what does it matter where it emanated to someone trying to create practical css. If a tag is still valid then it can be used. Deprecation might have a place in this and could be a seperate sub-topic.

Why not just say there have and will be different versions of CSS but we will be dealing with anything that's relevant to today's css implementation, regardless of its origin.

Confusing is the reference to css2 "which is really css2.1 but we're going to ignore that and call it css2"

by Geekyfifi
Fri, 07 Dec 2007 06:39:49 GMT
This note has not yet been confirmed for accuracy and relevance.

Might be helpful to have a read of interview with Eric A. Meyer in Adobe Edge Newsletter:


He talks about current mumblings inside W3C about where CSS is going and more good stuff.

by Tyssen
Tue, 04 Dec 2007 21:22:56 GMT

For those who want to keep up-to-date with what's going on with CSS3, there's a new site recently launched to keep track of the latest developments: http://soapbox.css3.info/

by Tyssen
Tue, 04 Dec 2007 06:08:48 GMT

Is it worth mentioning that there is a push to have CSS2.2 implemented?

Also, some other the CSS3 features already implemented that are worth mentioning - multiple bg-images, word-wrap, box sizing.

Related Products