Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
To me, one of the most interesting things about CSS is how it's constantly changing and evolving. As web designers, the ever-changing nature of CSS continues to give us new features and capabilities that we can use to enhance our designs. Of course, this also means that we need to keep an eye on CSS, monitor the changes that are being made to it, and track how browsers are implementing those changes. In this chapter, we're going to discuss how you can do all those things, but before we get into how to track CSS specifications, I want to take a moment to cover some of CSS's history. That's going to provide you with a little bit of context.
In the very beginning, there were no style sheets--at least not for authors. Each browser had its own internally defined style sheet that gave the browser instructions on how to style page elements. Eventually, the movement to allow authors to control the presentation of HTML led to the publication of the CSS 1.0 specification in 1996. This was quickly followed up by the CSS 2.0 specification, which was released as a recommendation in 1998. Now, these early CSS specifications were released at a very volatile time in the development of web browsers.
You see, in the late 1990s, browser manufacturers were more interested in market share than being standards compliant. In fact, the movement towards supporting web standards was still very young. At that time, browsers would introduce their own proprietary way of dealing with presentation that didn't agree with the CSS specifications, or would even offer uneven support for CSS. Now, it didn't help matters that the CSS 2.0 specification continued to be updated even after it was published.
Due to these and other factors, CSS had real problems in gaining traction among web designers and browser manufacturers. In fact, to this day, not a single browser fully implements the 2.0 specification. Those issues prompted the W3C to start work on revising the 2.0 specification. This revision, dubbed CSS 2.1 was issued as a candidate recommendation in 2004 and is largely what people are talking about when they discuss CSS.
Support for web standards continued to grow during the development of CSS 2.1, and browser manufacturers finally began to get serious about implementing the standard. For the most part, modern browsers offer full implementation of the 2.1 standard. You'll notice I said, "for the most part." Because of uneven implementation, the W3C pulled the 2.1 specification back to working draft status in 2005 to even out the bugs and make the standard a little bit stricter. It was returned to candidate recommendation in 2007 and upgraded to full recommendation status in 2011.
Okay, so just to review, the 2.0 specification was released and never fully implemented, and the 2.1 revision was released, pulled back to working draft, and then re-released again over the course of about six years. Now, saner minds might reason that the W3C should get one standard release and implemented before moving onto the next, but that line of thinking ignores the rapid evolution of the web. During the course of the development of CSS, some very important changes have occurred in the way that web sites are developed and consumed.
For example, the rise of online applications and mobile devices are just two of the changes that the original CSS specifications just weren't designed to address. Now, this is leading the W3C to take a very different and deliberate approach to developing the next generation of style-sheet standards. I'm guessing that you've at least heard of CSS3. What you may not know, however, is that CSS3 isn't really a single specification. Although work on the CSS level 3 standard has been going on since at least 2001, the days of a large singular standard document that defines CSS are over.
CSS 2.1 was the last all-encompassing CSS specification that we're going to see. The capabilities, properties, and just sheer size of CSS have grown enormously over the last decade. Trying to get such an overwhelmingly large document through the development and review process and then publish it as a recommendation is extremely difficult and slow. Because of this, the W3C has decided to modularize the CSS standard. Now, what does that mean? Well, essentially it means it's been split up into various parts.
CSS selectors, for example, are defined in their own standard, while backgrounds and borders are defined in another. This approach allows the working group to have much more flexibility over the evolution of CSS. Individual standards can be developed based on different priority levels when needed, and it's much easier to edit or add modules as the needs of web content changes. So in fact, there is no single CSS3 specification; there are simply individual specifications, and some of them have that level 3 label that are based on, and meant to extend, the 2.1 core specification.
If you want to find out a little bit more behind the strategy of the W3C regarding CSS, I recommend reading their Introduction to CSS3. Although it was published in 2001, this document is a great job of explaining the logic behind the move towards the modularization of CSS and gives you a list and description of the initial CSS3 modules. From this point on, all future additions to CSS will update the existing modules or add new ones to the mix. While this is a smart way to make sure the evolution of CSS responds to the web community's needs, it can make it difficult to keep track of all of it.
In our next movie, we'll do that by discussing the current state of CSS3 and showing you how you can keep up with the development of the different modules.
Get unlimited access to all courses for just $25/month.Become a member
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.