CSS is endless fun for the geek–it can be perverted in so many amusing ways. Take table layout, for example.

Back in the old days (you know, like 1998), HTML authors used table tags to lay out web pages. Gradually, a certain sub-community of web developers came to criticize this: HTML is meant to describe the page’s structure, not appearance, and tables were being used to lay out text matter, not tabular matter. “Save tables for, you know, spreadsheets.” they said. “Look, we’ve got this lovely thing called CSS that provides all kinds of layout flexibility.”

Many old-school web developers have been uncomfortable with this. Table tagging is familiar and predictable; CSS uses a completely different model for laying out the page. Or does it?

The fact is that CSS provides a complete set of tools for styling tables. It even lets you use tabular display tricks for text matter. So you can have your nice, semantically correct HTML, and in the CSS twist it to be displayed exactly as if you had marked it up with table tags.