Home
top

Some History

When the Internet and the web became mainstream in the second half of the nineties, web browser vendors had not yet implemented CSS, Cascading Style Sheets, well enough for web developers to be able to use it to control the presentation of an HTML document. The lack of implementation is partly understandable, considering that the specification for CSS Level 1 was published in 1996, and the specification for CSS Level 2 was published in 1998.

The lack of CSS support in web browsers, combined with demands from graphic designers used to the level of control that is possible when working with printed material, led to the abuse of HTML in any way possible to control the visual presentation of a web page. An example is the major breakthrough that was made when designers discovered that by using the attribute border="0" to hide the borders of a table, an invisible grid that could be used to control layout was created. Another example is the use of transparent, and thus invisible, spacer GIFs to control layout.

Since HTML was never meant to be used to control the presentation of a document, hacks, invalid code, and vendor-specific elements (tags) and attributes were used. Validation was something that very few knew about or used. Tag soup is a very descriptive name for this kind of code.

As new versions of web browsers were released, CSS support was improved and extended, but not at the rate it should have been. Despite browser vendors being slow to implement CSS, we have now reached a point where web browsers with reasonable CSS support are being used by so many that there is no longer any reason not to use HTML the way it was meant to be: to describe the structure of a document, not its presentation. For that, we can now use CSS, which was designed specifically for that purpose.