sneakyimp wrote:I try very hard myself to avoid nested tables, etc. and I make use of CSS all the time. I have yet to see in these examples, however, how one might emulate the layout of a table (that nifty grid pattern) without actually using a <table> tag. I'm talking rows and columns. The thought of creating a DIV tag for each cell and giving it a precise height, w, x, and y sounds like a nightmare.
Yep, if you want to emulate a table-based layout, then tables will probably be simpler to use. The question to ask yourself is whether you are designing your layout with tables in mind from the beginning? And again: if the data you are representing on part of a page can legitimately be thought of as a data matrix of some sort, then by all means use a table for that particular part.
But, as far as overall page layout goes, if you can "free your mind" from the constraints of rigid grid-based layouts and start thinking of columns and relative positions, there is so much you can do with CSS that tables cannot do, or at least not do without multiple levels of nesting, colspans, rowspans, etc. And the biggest benefit comes when you decide you want to change the layout of a multi-page site and, if correctly done in the first place, all you have to do is change one stylesheet file.
And just to be annoyingly repetitive, HTML tables are a legitimate mark-up option and have their place; it's just my opinion (and that of many others) that they are over-used for purely visual presentation means, which is not what they were intended for and can result in a number of negative impacts.