As we know, CSS is supposed to provide us with a standardized way to separate design from our content over the web. The standard is real, but the implementation is all speculation and theory. We’ve reached another milestone with the release of CSS3, and the journey getting here has been quite a clumsy one.
Even with CSS being standardized, the W3C has no control over how the different web browsers interpret and implement it. Different browsers will implement CSS rules either the same, somewhat differently, or very differently. This has created the bane of every front-end designer’s job – dealing with cross browser compatibility.
All modern browsers support CSS2, again, albeit differently. However, after years of development, CSS3 is still a work in progress and is only partially supported by some browsers, namely, Firefox, Opera, and Safari. Other than the fact that the W3C can’t in any way “crack the whip” on any browser’s parent company, its difficult to pinpoint why CSS has hobbled along as such a mish-mash up to this point. Lets take a chronological look back where CSS started.
Officially first released in 1996, this early version included more or less the most basic properties used by CSS, things such as fonts, text styles, and margins. Netscape 4 and Internet Explorer 3 supported CSS1. It became evident that these simple style elements were not going to be enough. Designers were not having an easy time positioning elements simply by using margins. In response to this, the W3C released what they called CSS-Positioning.
Two years after CSS1, CSS2 was released and is still the most widely adopted specification. CSS2 builds on the first two versions, and adds more in terms of accessibility. Accessibility became a huge topic over recent years, with the advent of Internet penetration. Persons who are disabled need to have more or less the same experience online as someone who is not. As stated at the beginning, CSS removes design from content when implemented correctly. In this way, people using screen readers or some other aid are getting access to the exact same content.
The W3C is taking a different approach with regard to the release of CSS3. This time, they are dividing the release into different areas of interest, and rolling them out one at a time. The idea is to give the browser manufacturers time to test and implement small incremental upgrades and get the compatibility down in a more manageable way. In this regard, a full dedicated release does not exist.
Hopefully knowing the history of CSS ‘rocky evolution and how they plan to correct past mistakes will allow this latest implementation to go over a lot smoother. Web design is a challenging industry enough as it is without having to worry about the technical quirks of a browser. It would be nice to just get coding and know that if something looks wrong in one browser, it will likely be wrong in all the others, and the fault lies with the developer … an easy fix.