HTML was originally a text-only markup language designed to render papers, provide for hyperlinking between documents, and, well… little else. It was a structural language at that point, with tags that defined various page elements such as headings and paragraphs—and these tags were almost always used correctly. Then, in the early-middle nineties, the first graphical web browsers appeared.
Almost immediately, support for colors, typefaces (fonts) and for images was added and shortly after that, designers started using various tricks or hacks to render pages that were more visually interesting and compelling to a degree not available using the strictest interpretation of HTML. Then things got worse. Proprietary tags were developed and the "Browser Wars" escalated. HTML quickly became a much more presentational language. There was a lot of pressure to develop tools that would allow for the kind of control long available in the Print world, and then bad things started to happen to good pages.
It wasn't that nobody cared about doing things right. No other tools were available. If you wanted to place an image on either side of a centered headline, you had to create something like this:
<table>
<tr>
<td><img src="leftduck.jpg"></td>
<td><h1 align="center">Heading</h1></td>
<td><img src="rightduck.jpg"></td>
</tr>
</table>
![]() |
Heading |
![]() |
A program called NetObjects Fusion was the earliest to use this approach to laying out pages, although many web developers had been hand- coding using these techniques for years.
Today we have terrific tools to fine-tune the visual presentation, the printed presentation and even the aural presentation of information stored online. Cascading Style Sheets allow us to control how information is presented to a much greater degree than ever before available, and correct the mistakes we made in the 1990s when we had no better solutions.


