The Rocky Introduction of CSS in Web Development

By Kathleen Taylor, Bud E. Smith

Cascading Style Sheets (CSS) have been a gift from the heavens for web developers, making it far easier and more predictable to create and deploy web pages across a range of browsers and devices. The previous approach, tables, caused developers problems almost from day one.

Tables were so problematic that sophisticated web developers were eager for something different. The first specification for Cascading Style Sheets, called CSS 1, was introduced in 1996. But it took three years for browsers to support most of the initial standard, and the implementations were incomplete, inconsistent across browsers, and buggy.

This slow and inconsistent implementation caused huge problems for web developers. They were faced with choosing between continued use of tables—the devil they knew —and trying to make things work in CSS — the devil they didn’t.

Making things worse was the increasing tendency of users to ignore requests from developers to update their browser software when new releases came out. It was often a real struggle to get a spiffy-looking website to work across the latest versions of Internet Explorer, Netscape Navigator —the leaders at that time —and smaller browsers such as Opera. (At the time, many AOL users surfed the web using AOL’s internal browser, an ugly and notably outdated beast.)

However, any web page that used CSS was almost guaranteed to break on some older versions of these same, and other, browsers. Tables were almost as bad, or worse. Just getting a web page to work as intended was a major problem.

Finally, in the year 2000, Internet Explorer 5 for the Macintosh successfully implemented all of CSS 1, and parts of the successor standard, CSS 2. (CSS 2 was published initially in 1998.) Other browsers followed in the months and years afterward. And a new version of CSS 2, called CSS 2.1, eliminated some little-used features, making implementation easier. CSS 2.1, introduced in 2004, has continued to be revised.

CSS 3 separates the CSS standard into separate documents called modules. Ironically, given the long and tortured history of CSS 2, early drafts of CSS 3 were published in 1999. CSS 3 now includes more than 50 modules, some more stable than others. CSS 3 is the standard used for most web development today.

Having stabilized, CSS can reliably be used for complex problems such as making a single web page work on everything from mobile devices to giant screens like the iMac series. But it was not always thus, and many web veterans still bear psychological hangovers from the difficult earlier days of the web.