Tables for layout?
Recently, both Andy Budd and Dave Shea have written about how they consider using tables for layout acceptable in some cases. While I understand what they mean by this, I’m concerned that some people may use it as an excuse for not even trying to learn how to layout a document with CSS.
Some say that CSS is too hard. Well, everything is hard until you know how it works. Let’s see, I’ll open up that wicked k00l pixel-perfect site i built back in -97 and see if I can understand it today. If I find my way through all the frames and down four or five levels of nested tables with colspan here and rowspan there, font tags and spacer gifs all over the place but no semantic or structural markup whatsoever, I may actually find a little bit of actual content in there somewhere. How is that any easier than using CSS to layout and style clean, structural and semantic markup? The only reason some may find it easier is because that’s what they are used to. Try putting someone who has never used tables for layout in front of a 20th century piece of “HTML” and ask them if it looks “easy”.
Besides, who says building web sites is easy? Sure, just about anyone can whip up something, as long as they can use a WYSIWYG editor. But building a usable, fully accessible, attractive, quick loading web site that meets client and user expectations and is liked by search engines is hard. Even if you use tables for layout. There’s no way around that.
Yes, I know neither Andy nor Dave are suggesting we go back to coding tag soup. But there is a risk that some people may interpret it that way, and continue using tables for all layout, since that’s what they are most comfortable with. You know, the path of least resistance.
Anyway, I don’t want to sound like a CSS zealot here, so I’ll offer a piece of advice: If you want to keep using tables for layout because doing so makes your life easier, go ahead. But please use as few tables as possible, don’t nest tables, make sure your tables make sense when they are linearized, validate your code (which, among other things, means you need to remove all those height attributes from your table elements), use semantic markup inside your table cells, and keep learning.
- Previous post: Clearing floats without a clearer
- Next post: How to size text using ems
Sponsors
Authentic Jobs
DreamHost web hosting
Use the promo code 456BEREASTREET3 to save USD 20 when you sign up for DreamHost


Comments
Oh, thanks. That is exactly what I was trying to say, only your will be heard (I hope).
i think u misunderstood what Shea was trying to say…
Steven: Nope. I did not misunderstand him:
Yes, I know neither Andy nor Dave are suggesting we go back to coding tag soup.
Comments are disabled for this post, but if you have spotted an error or have additional info that you think should be in this post, feel free to contact me.