A little more on tables:
Once upon a time, in a galaxy far away (well, in Switzerland actually), a bunch of physicists invented HTML as a way to share scientific papers. One of the things they needed to include was tables of figures, so they dreamt up the <table> element and its kin to do the job.
They weren't too bothered about how their HTML documents
looked. Indeed, one of the points of HTML was to concentrate on the content and ignore the presentation. Tables were just for data. Period.
Roll forward a few years and people were beginning to build HTML web pages that had nothing to do with science. They were using it to present all kinds of information, and wanted to present it in an attractive way. The original HTML offered very few ways of doing that - it's not what it was designed for - so folk latched on to whatever they could use (or misuse) to do the job.
Tables were an important part of that. If you put the whole page into a table, you can divide it into columns and rows and slice up images for slow-loading modems and all manner of 90's goodness. It's not what they were designed for, but it worked and it was the only thing we had. The problem is that layouts with any degree of complexity spawned horribly complex tables, tables of tables, single-cell tables and lord knows what else. These are difficult to maintain, slow to load, and (importantly) hard for people to understand if they have to use a screen reader to read the screen instead of looking at it.
Enter CSS. A technology specificly designed for laying out and presenting HTML pages. Support was flaky at first, but with increasing stability it's pushing tables out of the picture as a way of laying out pages (amongst professionals anyway). I'm not going in to the whole CSS v Tables thing here, but the growing consensus is that CSS is the better way to lay out pages, and that you shouldn't use tables to do so.
So tables are evil, right? No! Tables are fine
for the purpose they were designed for. If you want to lay out some data in rows and columns, a table is pretty much the element you should use. People vary on how freely they use the term "data" - personally I'm pretty liberal in that regard, but no sensible person would ban tables altogether.
It's not helpful to the newcomer to read so much conflicting advice on tables. Web design is a young discipline, and things that were 100% true ten years ago are false now. You can read all that (relatively) old advice online and it's not obvious that it's outdated. Geeks don't always help matters in the way that their minds work - everything that I think is obviously right, and if you disagree you're both wrong and an idiot. We try to be more friendly on this forum!
Hopefully this goes some little way to explaining the tables situation.
-- Chris Hunt
Webmaster & Tragedian
Extra Connections Ltd