5.1 History of CSS
Style sheets are nothing new; they have been around since the beginnings of SGML in the 1970s. As HTML grew, so did it's stylistic capabilities, giving web designers more control over site appearance but with the downside of HTML becoming more complex to write and maintain. In addition, variations in web browsers made consistent site appearance difficult, meaning there was actually less control over how web content was displayed. To improve matters, CSS1 was released in December 1996, the first CSS specification to become an official W3C recommendation. Unlike existing style languages, it allowed documents' styles to be influenced by multiple style sheets. One style sheet could inherit or cascade from another, permitting a mixture of stylistic preferences controlled equally by the site designer and user.
Several groups were experimenting with CSS in the early nineties. Tim-Berners Lee's original NeXT browser had a simple style sheet language but he never published it. In 1993, Robert Raisch posted a proposal named Stylesheets for HTML, but it was Håkon Wium Lie in 1994 that released a draft that included the cascade, the concept of interaction and prioritization between an author stylesheet, user stylesheet, and finally a User Agent (browser) stylesheet. Recruited by the newly formed World Wide Web Consortium, together with Bert Bos he authored the original CSS1 specification released in 1996.
CSS2 was published as a W3C recommendation in May 1998, including many new capabilities, and in 2005 CSS 2.1 fixed the errors in CSS2, as well as removing poorly supported features and including extensions already implemented by some browsers. It is currently in candidate status awaiting recommendation. Meanwhile, CSS3 is currently under development (and has been since 1999!).
Although CSS1 was released in 1996, it took over three years for any web browser to implement of the specification anywhere near fully, and by July 2008, no browser had fully implemented CSS2. Even when CSS1 was fully implemented, there were still inconsistencies amongst browsers, bugs and quirks, which made it difficult for web designers to achieve a consistent appearance across platforms. Many resortedarea (and still do) to using workarounds such as hacks and filters in order to obtain consistent results across web browsers and platforms. This led to the revised CSS2.1, which is somewhere nearer to a working snapshot of current CSS support in HTML browsers.
What Spec to use?
CSS2.1 and CSS3.