Webmaster Elitism: Tableless Design
Ooooh! I actually SAID that! But really, tableless design is one of the most irrelevant things I’ve come across in a long time. As though by eliminating the use of table code, you prove yourself a superior designer, regardless of the annoyances and extra time that it takes, when it isn’t even detectible in any way to the site user.
For the average site, there are absolutely NO advantages to tableless design. None. I don’t know which designer decided it was superior, or why it caught on, but the only explanation I can find is ego. It is more difficult to code a tableless template for many structures, which makes those who do so feel superior. Silly, really.
Neither type of coding is better. Those who advocate tableless design say that it produces leaner code. Not true. Bloat is just as prevalent with tableless design, often MORE so, because you have to create so much more code to do what a table can do without even trying.
My biggest issue with the elitism on this issue though, is that common sense is being ignored. The fact is, tables can do some things faster, easier and more predictably. And a design coded in divs just CAN’T do it. The code can’t be FORCED to do it.
An example…
We created a design with a menu that had multiple blocks across. Four cells across on each level. My coder originally coded it tableless. And the results were disastrous.
About every third refresh, the divs would stack instead of laying side by side – they would stack in all sorts of arrangements. And you could not MAKE them go side by side. The code does not exist to make them do so. She tried everything to force them to predictably do so. No go. Because with divs, they are independent containers. And if the browser wants to load them wrong, it can, there is no way to require it to display four across.
Now, there are those that insist that if you MUST use table code, then code it into the CSS instead of in the HTML. Really a stupid idea, because doing so removes every advantage of using table code in the first place – the predictability. Being a progressive coder though, my coder tried this next. It still had the same problem. Because CSS tables have the same problem divs do – the cells are independent containers, which are not required to behave in relation to one another.
We replaced the div code with HTML table code. It has behaved predictably ever since. Because a table is a single entity, with containers that are part of the whole. If you specify four cells across, it HAS to display them all across, and CANNOT stack them inappropriately.
There are other times when divs simply do not behave themselves, and debugging them takes so much time that it is more fair to the client to just use table code and get on with life. Getting anal about this issue is pretty dumb, and is responsible for a LOT of wasted time and energy, with absolutely NO benefit to the client or the site visitor.
The claim is made that the ONLY reason that divs will refuse to go where you tell them is that the width numbers don’t add up right. Not true. There are all KINDS of bugs and conflicts that can cause this, and tracking them down can be a nightmare, especially when working with someone else’s code.
I just find that any claim that tableless design is superior is a pointless claim. That superior design is not arbitrated by whether you use one type of structure or the other, but by whether what you use WORKS, in the MOST EFFICIENT manner. If you have not gained BOTH predictability, AND efficiency, you’ve made the wrong choice! Statistically, tableless design holds no corner on that market – in fact, about 50% of the time, it will WASTE time, and result in a higher level of INEFFICIENCY, and UNPREDICTABILITY.
The end result is what matters – irrelevant fussing over whether you used tables or not is not an intelligent use of either time, or intellect.