Anne van Kesteren

CSS 2.1 Candidate Recommendation

I still haven't "reviewed" the CSS 2.1 Candidate Recommendation specification, although I think I can say I'm quite familiar with it having read it quite a couple of times for online forums and especially, Bugzilla. It should be noted that specifications are not really meant for the developer/designer, tutorials should be created for those people, but as of now, only few exist on the internet and you can't get around reading some sections of the specification now and then (I hope to change this, some day).

All the changes can be read in Appendix C: Changes, but the most important change is probably that this specification is aimed at browsers and not perfection. Parts of CSS 2.0 were not useable or not logical and browser implanted it differently in a more logical way. That is now standardized by CSS 2.1. 2.1 removes all the features that were not widely implanted (at least two browser vendors should support it), like display:compact;. Therefore, the specification can be seen as a "snapshot" of current implementations. You don't have to worry though, although @font-face has been removed, CSS3 will reintroduce it, along with the other properties from CSS 2.0 that haven been removed.

Of course, there are some exceptions, like display:marker, which has been removed because CSS 3 will introduce a pseudo-element, ::marker for that. Just like the media type "aural" has been deprecated and "speech" is introduced for forward compatibility with the "css3-speech" module.

One of the changes, that most browsers already allowed (I think Opera 6 did not, since I'm always having trouble in that browser) is floating boxes without setting a explicit width. I'm not sure if this is needed since we have display:inline-block; now and it almost behaves the same. But for current, real world sites, this change was definitely needed and since most browsers supported it, it was a logical move to include it.

The only thing that has to be done is to complete the CSS test suite and test the current browser behavior. If, for example, two browsers are going to correctly support display:compact or @font-face it has be backed in into the specification. That is also, as far as I know, the only issue that remains: what should happen when the current candidate recommendation changes; back to last call (most logical choice in my opinion) or stay in candidate recommendation status?


  1. I believe the W3C process document says that once in CR or PR, it can not be changed except for editorial changes. More widespanning changes than that such as modification of, addition or removal of features requires backing to WD stage.

    Posted by liorean at

  2. There is some discussion about that though, see issue 15b here: CSS2.1 Last Call: Disposition of Comments.

    Posted by Anne at