You know spend a lot of time building websites when your dreams involve heading tags, tables, and DIVs. Last night I dreamt that I blew a fuse in a meeting when I saw the speaker explaining how to use heading tags, and they did it wrong.
I felt embarrassed immediately afterwards because I knew it was nothing to get mad about. Right after that, I woke up and thought to myself…why does the IT department make us use tables? Tables mayhem on my clients site, has lead to heading tags not even being used at all!
Tables, the Root of all Evil
It’s not the table, but the developer that uses them, right? Right. Table are not really evil at all, and there is nothing wrong with using them. They are just often misused. Tables are for displaying content that you might find in an excel file. Rows and columns of stuff nicely organized in a tight little table. You can even include table headers.
Have any of you used the table tag <th> before? That would seem to be a very strange tag to use within a template. That tag is used in place of a TR to identify the column titles.
Tables Gone Wild
My main client uses tables to be used in the layouts of their intranet, and they even make us webmasters use a default style guide that supports those tables. Imagine every header, and every line in my left menu on this site being assigned it’s own row, and the row then needs to be assigned to a class to show what kind of content it is.
It’s pure insanity at best. It’s actually FrontPage and Dreamweaver run a muck. Non developers simply pushing content around with tables, not realizing what they are actually doing to the code, and the endless hours of difficult repair work created when a directors admin messes everything up trying to move something.
If they had only used DIV tags instead of imposing table insanity this could all be avoided. This is one of the main reasons we use DIV tags.
DIV tags allow us to stack and align content, organizing it one item after another, and do it in a way that prevents the need to micro manage every cell. On a daily basis I deal with tables that are often four or more levels deep. Any of you that work on sites full time know I am dealing with lost/incomplete tags and crazy inline styles.
So basically, after my little nightmare, I just want to remind everyone to try and use DIV tags for formatting templates. You will prevent a ton of future headaches, and may even save yourself from a bad dream.
- April 7, 2010
- Posted by Robert Campbell at 9:07 am
- Add comments
- Code
- div, heading tags, tables

I rather use than table where as I can specify the top and right or where I wish to put it.
thanks for bringing this up in your site content. I also misused this tables and I’ve also used them before to layout my site the best way to do that today is through the use of DIVs,though i need to read my notes regarding liquid css layouts.
Well, I would be a liar if I said I never used tables for layouts. I started building sites back around 1996. I don’t even know if div tabs were around then.
Yup me too, but sometimes I used tables for easy layout
I could be persuaded that people should have a choice to buy some other space elsewhere on the plane (if the plane can support it) to ensure a space for your carry-on.
I can’t honestly say I dream about heading tags and table but I get your point. It is pretty hard to watch someone do something wrong and try to keep yourself from exploding.
There are now plugins which add nice tables to wordpress blogs
It is pretty hard to watch someone do something wrong and try to keep yourself from exploding.
I don’t like using tables for the page layout..I use only them for tabulated datas.
Yup I agree with you as if this is the easy way to achieve your goal
Yeah, Table are not really evil at all, and there is nothing wrong with using them.
Many people use tables for their layout but its not the best way to do it. I agree divs are much better, but the people new to html tend to use tables.
This can be quite annoying. I have found though if you wire-frame things out it helps alleviate some of the annoyance.