Too Little, Too Late?
The release of solidly compliant mainstream browsers was great news for web users and builders. But by the time the glad tidings arrived, many designers were convinced that web standards were a pipe dream, and others had ceased even trying to implement them correctly. It's not hard to understand why. The perception was years in the making.
CSS: The First Bag Is Free
The CSS1 spec had been issued around Christmas of 1996. A few months later, IE3 debuted, including rudimentary CSS support among its features. CSS support (entirely missing in Netscape 3) gave Microsoft's browser its first whiff of credibility at a time when Netscape Navigator dominated the web. IE3 supported just enough CSS to let you dump your nonstandard <font> tags and begin experimenting with margins, leading, and other rudiments of CSS layout. Excited by what they saw on Microsoft demo pages [3.11] touting its new browser's capabilities, many designers took their first plunge into CSS design—and soon came up gasping for air.
3.11 A page from Microsoft's 1998 CSS gallery (www.microsoft.com/typography/css/gallery). Overlapping type and all other design effects were created entirely in CSS—no GIF images, no JPEGs. IE3 could display these effects; Netscape 3 (then the market leader) could not. The gallery's CSS used incorrect values required by IE3's imperfect CSS engine, and its overall standards compliance was nil, but the genie was out of the bottle. Having glimpsed what CSS might do, many of us never looked back.
IE3's CSS support was a bold first step, but it was understandably buggy and incomplete. Those authoring CSS for the first time exulted in the creative freedom it offered but quickly bogged down in early IE bugs that could make a page unusable. For instance, under certain circumstances, images on a CSS-driven page would sit on top of text instead of alongside it. To get an idea of what this was like, place your hand on this paragraph and try to read it through your flesh. Unless you're Claude Rains, you'll have a tough time.
The workaround to this early CSS rendering bug in IE 3 was to place every image and paragraph in its own table cell, thus doubling the weight of your page while defeating the purpose of CSS (to control layout without tables and without excess bandwidth). Designers soon concluded that CSS was not ready for prime time—a determination that seemed reasonable given the absence of any CSS support in market-leading Netscape 3.