I was asked by a colleague today why I favour using HTML DIVs over tables for laying out my JavaServer Pages. This is the reply I gave…
“In the beginning (1990 actually) God created HTML and it was pretty much text and hrefs and God saw that it was good. Then Man thought that it looked kind of dull and wouldn't it be good to spruce it up a bit with images and fancy graphics, and so the people in the land of Netscape who ruled the world begat their own HTML tags and lo, websites could have blinking text and funny little GIF animations and Man saw that it was indeed like, cool. Then the time of Dreamweaver came and lo, the dot com boom was upon Man. And the tribe of web designers with ponytails and Saabs wanted to make sites with precise layouts, even though HTML was never designed thus. And so it came to pass that tables were used to lay out web pages in a way that pleased the designers and looked quite good in most of the browsers of the age, even though they all had differences in the way they rendered HTML.
But all was not well in the kingdom of the Web. The Gods were angered, for they saw that their creation had become bad, for presentation had become mixed with content and Man had not heeded their Word. And their anger begat a new child, the cascading style sheet and they passed down new commandments to Man, saying that thy shall not mix presentation with content and thy shall always specify a valid DOCTYPE for thine document and thy shall use tables to present tabular data and not for page layout. Man was slow to adopt CSS and there were the dark times of the version four browsers, but Man began to learn his lesson and learnt the way of the DIV and he became a regular disciple of the teachings at the temple of the W3C validator.
So after the six ages of IE it came to pass that the Gods smiled down upon Man and saw that with his help they could at last begin building the Semantic Web and all would be well in the web of data.”