A Brief History of CSS
The lack of design capabilities in HTML was apparent to many, especially to two men named Håkon Wium Lie and Bert Bos. They drafted the first Cascading Style Sheets (CSS) specification, released by the World Wide Web Consortium (W3C) in 1996, to fill this void.
If you want to read more about the saga of CSS, check out w3.org/Style/ LieBos2e/history/
CSS has evolved over the past several years under the guidance of the W3C (Figure 1.7) into its current form. Most modern browsers (Microsoft Internet Explorer 7, Mozilla Firefox 2, Apple Safari 2, Opera 9) support CSS Level 2 (which includes CSS Level 1 and CSS-Positioning). However, after years of development, CSS Level 3 still remains a work in progress. The following are some details about each of the versions:
Figure 1.7. The W3C's CSS home page (www.w3.org/Style/CSS/). Although it can get a tad technical, this is the source of all CSS knowledge.
CSS Level 1 (CSS1). The W3C released the first CSS recommendation in 1996, and revised it in 1999. This early version included core capabilities, such as the ability to format text, set fonts, and set margins. Netscape Navigator 4 and Microsoft Internet Explorer 3 and 4 support CSS Level 1almost.
CSS Positioning (CSS-P). Web designers needed a way to position elements on the screen precisely. CSS1 had already been released, and browser support for CSS Level 2 was still off in the distance, so the W3C released a stopgap solution: CSS Positioning. This working draft was a proposal that the various browser makers could debate for a while before it became official. Netscape and Microsoft jumped on these proposals, however, and included the preliminary ideas in their version 4 browsers. Do both Netscape and Internet Explorer support CSS-P? Sort of. Although most of the basic features are supported in both of the "name-brand" browsers, several features were left out.
CSS Level 2 (CSS2). This version of CSS came out in 1998 and is the most widely adopted by browser makers. Level 2 includes all the attributes of the previous two versions, plus an increased emphasis on international accessibility and the capability to specify media-specific CSS. Microsoft Internet Explorer 5 and later, Opera 3.5 and later, Apple Safari 1 and later, and Mozilla Firefox 1 and later generally support Level 2.
The W3C has released updated drafts as CSS Level 2 Revision 1 (2.1). CSS 2.1 has corrected some errors, clarified a few issues, and included specifications for some features that have already been implemented in some browsers.
CSS Level 3 (CSS3). Work on CSS3 began in 2000, not long after CSS2 was made official. While it is still under development, work on the specification has been divided into various topics, or modules. So, while it may be some time before all of CSS3 is completed, some modules will be ready before others. However, as is the case with previous versions of CSS, once each module is developed, it most likely will take several years for browsers to support it. Considering there was a six-year lapse between versions of Internet Explorer 6 and 7, CSS3 most likely won't be ready for prime time anytime soon. See the sidebar "The Future of CSS? Level 3" for more details. Although this specification is still under development, some browsers (most notably Apple Safari and Mozilla Firefox) have started integrating some of its features, most notably opacity.
The Future of CSS? Level 3.
Never content to rest on its laurels, the W3C is hard at work on another rendition of Cascading Style Sheets: CSS Level 3 (w3.org/Style/CSS/current-work). Many of the problems that CSS2 doesn't adequately address will be resolved in this upcoming version.
Although the standard is still under construction (and has been for several years), many of the additions to CSS3 sound very exciting. Here are some highlights:
Columns. The most exciting new feature proposed for CSS3 is the ability to create flexible columns for layout. CSS is complicated when used to replace tables for multiple-column layout. Ideally, CSS3 will take care of this problem.
Web fonts. Although CSS2 theoretically provides downloadable-font capability, it's still too hard to use. The W3C wants to make fonts more Web-friendly in CSS3.
Color profiles. One common problem with graphics is that they may be darker or lighter, depending on the computer being used. CSS3 will allow authors to include color descriptions to offset this problem.
User interface. CSS3 will add more pointers, form states, and ways to use visitor-dictated color schemes.
Behaviors. The most intriguing new capability uses CSS to dictate not only visual styles, but also the behavior of objects. This would provide further dynamic controls through CSS.