Tables vs. CSS, Round 732

Over three years ago, I wrote a rant about the difficulties of using pure CSS for layout. That post got some Google traction and still slowly collects comments. Today via Signal vs Noise I saw another person saying much the same thing years on, that yes doing layout in pure CSS is more pure and technically correct but using tables gets it done and allows you to move on with your life. Hilariously a post entitled “CSS Trolls Begone” began to collect CSS trolls almost immediately. CSS fundamentalists are exactly as big a pain as any other form of fundamentalist and for the same reason – disagreeing with them pokes a big hole in the purity of their belief system and they feel the need to “correct you”.

Listen, I’d prefer to do all my layout work in pure CSS too. When I read up on best practices, implement those and then test on 3 different browsers with 3 different results – I’m done. It’s too expensive and out of the range of feasibility. If you are so concerned about the purity of CSS, then make it your personal crusade to get the CSS layout support standardized across all HTML rendering engines. Until then, you can rage at me until your face turns blue, call me stupid for failing to implement layout in CSS, do whatever you want but I’ll do the pragmatic thing that works.

I don’t get to live in the world of theory and optimality. I’m here on the ground, with deadline and timelines and finite resources and bills to pay on top of an endless array of projects I’d like to do. I need to get shit done and off my plate for new shit to come in. If I can do that by hacking a table in 20 minutes, when 4 hours of CSS layout work still leaves me with a non-scalable layout that renders differently in IE than Firefox then Safari, I’m going low tech.

CSS troll comments routed to /dev/null because my resources are finite and life is too short.

Published by


Dave Slusher is a blogger, podcaster, computer programmer, author, science fiction fan and father. Member of the Podcast Hall of Fame class of 2022.

12 thoughts on “Tables vs. CSS, Round 732”

  1. Leo says:


    I definitely agree on this. I’d rather spend 30 minutes on doing tables than 3 hours of my time on CSS, that might not even work in all browsers.

  2. Like so many others, I typed ‘hate css’ into a search and found I’m not doing badly on learning the stuff; it’s the stuff that is bad. CSS needs basic alignment tools – you shouldn’t have to hunt around on the web just to find out how to centre an image in a space. It is only today I’ve seen that footers, for some reason, don’t behave as supposed – which explains why I have had inexplicable problems with footers too, and have wasted much time trying to puzzle them out. Page layout should be a breeze to write and a breeze to render: put this here (relative to top left), put that there (rttl)…

  3. lance22 says:

    You are right on, my friend. I’m at the tail-end of trying to roll out a css-only gridview. It would be perfect in every regard if I could control the amount of wrapping that goes on but since the data comes from a db I have no control over that. As soon as once span gets twice as big as another the smaller span doesn’t scale out vertically. Nobody would know, of course … unless you are trying to shade or border each span then it’s fault becomes obvious.

    I read one flame from a guy who said that there is no use for a table, ever, under any circumstance and if you resort to one you just are too stupid to be a developer. LOL I looked at his bio and here he’s 21 … yeah right … less than a novice but he’s telling the rest of us that have been in the biz for over a decade about how it should be done.

    Thanks for telling the truth … CSS is a great thing, but it does have a few small limitations.

  4. The Le says:

    I think CSS is great for decorations (bold, font, etc), but it falters greatly for the purpose of layout and design. It’s really a programmer’s tool that is being pawned off as a designer’s tool — but it’s not. CSS is complex and extremely testy. You mess up one line and your entire page is hosed.

    I have two fellow programmers that are CSS Purists. When I say to them “Tables do it this way, can CSS do that?” They say YES but they can never figure out how to do it (and they are considered CSS experts).

    CSS definitely has its uses, as it allows you to change the decoration of things easily, but once you throw in all the FLOATS and other “design and layout” features, it all falls down on its own weight.

    Why should spend an hour figuring out a 3-column layout in CSS, when I can spend less than a minute to do it in a Table?

    Do I really care if a CSS layout can load my page in 3.4 seconds rather than the Table layout’s 3.8 seconds?

    Not really, no.

  5. keef says:

    Funny how so many folks seem to have stumbled upon this by typing “I hate CSS” into google. A bit of a theme developing in this regard, perhaps.

    Mind you, that’s not how I got here – I typed “CSS is shit” instead!

    To those sad bastards telling us we’re not doing it right, I ask – who’s to say if it really matters that much, if tables work just as well if not better? And besides, who are you to dictate such things to the rest of us?

    Having read through an absolute litany of manuals, articles and posts on the subject, I think I’ll just bin the idea of using CSS, in favour of tables and divs for layout, and keep the CSS for the odd little details here and there – that way I can get a life!

  6. para says:

    I typed “why are tables evil and css good?” in google… because i really want to know what’s so good about css layouting.. it takes forever and doesn’t bring good results. Good that i’m not alone. Although I’ll probably try some more, it is good that the tables will be the option to go back to. I hope CSS3 will be supported soon, the layouting mechanisms look way more logical than now.

  7. Kali says:

    My programmer isnt use to seeing websites being laid out using tables. I’ve been doing it for years and have gotten great results. I’ve seen and had nothing but bad experiences with CSS and I couldnt understand why it would take my programmer 4-5 days to work on a simple piece of our site… I am old school. I keep it simple and do what i know works.. Tables are my thing. They allow me do put things where I want at the same time using elements of CSS to control the way certain things work.

    CSS is good to know, but not entirely best for the totality of your web project.

    Forget those new developers who go to the community colleges and learn web design with this new age motivation to implement css for everything.

    I typed in “i hate css” and found this post… it’s crazy how many others feel the same way!

  8. frustrated designer says:

    I agree. I hate CSS for layouts with a passion. Work took hours instead of minutes or days instead of hours. I drank the poison kool-aid too, but at least now I am recovering.

    I lost one recent client at least partly because CSS that I tried and tried and tried to make things look right caused me to take too long to get his stuff done. At the last minute I put some tables in and some things that were off were immediately and suddenly aligned perfectly but by then it was too little too late. We live in a real world and these CSS zealots live in some fantasy world where clients don’t care if it takes forever to get work done or that you need to sleep, have a life. Even some CSS effects didn’t work in IE that work in Firefox or Google Chrome, but I bet if I had done those with Java Script it would have worked in all browsers. It seems that table layouts and Java Script are more “standard” since they work the same in all browsers or at least much more consistently than CSS/Styles.

    One recent client needed a drop down menu built. I tried building it with CSS. It worked in Firefox but failed in IE7. She ran only IE and kept claiming that it didn’t work. I re-did it in Java Script, sent it to her, and got paid quickly.

    I noticed the latest versions of browsers recognize font and format tags that are supposed to be deprecated work in IE8, Google Chrome, and Firefox 5. I thought deprecated tags were eventually going to stop being supported by new browsers, or do browser makers realize they would have a lot of angry people if they suddenly made these things stop working.

    I am very talented with programming and design but it hasn’t felt like it with CSS. Running circles and taking too long to get things done has made me feel a lot dumber than I really am.

  9. Yeah… I don’t get this. Maybe it’s a function of having come up in the web design world without any knowledge of tables, but those things are fuckin’ nasty, and they have really stupid rules. I get more frustrated trying to make well-styled tables than I do making whole layouts in CSS.

    I’m not a fundamentalist or anything, I just don’t know why you would ever WANT to use tables.

  10. less frustrated designer says:

    I don’t use css/styles to position tables at all. That is even more of a pain. I like tables because if you forget to make them wide enough the borders stretch to hold your content instead of cutting it off.

    CSS was a nightmare for me with layout and testing them in different browsers. To be expected, IE worked the worst.

  11. newwavedave says:

    I fucking HATE CSS. I believe CSS was made up to make all the web coders feal better about themselves. They felt that it was getting to “easy” for web designers to design websites using ImageReady and Dreamweaver. So some coder said to some other coder, let’s tell everyone that CSS is where it’s at and then some other coders realized what was going on and jumped on the band wagon. Anyone who wants to make a lot of money, come out with a simple, easy to use and elegent way to create CSS from a photoshop design.

  12. FrustratedAsFuckWithCSS says:

    Evil Genius….I’m one of the many who typed in I Hate CSS into google to stumble upon this. I’ve given full css layouts try after try, with one to two projects every year over the last 3 years.

    Today was the last straw. After 6 hours trying to do something that I could have done in 20 mins w/tables…I’m officially saying FUCKIT to using css-only layouts. Yes……

    Everyone’s getting high-speed, even senior citizens. I am tired of the slow loading speech. I grew up w/28.8kbps…shit took forever then, now it loads way faster.

    I still use CSS for styling, but am sticking with logical tables so I can get paid. It seems that the more I read about the more it seems like a bunch of assholes trying to control the internet…fuck this. fuck censorship. if the shit fits, use it. Don’t tell me my shit is flawed because I don’t spend hours trying to float shit around…

    liquid layouts are sexy and cool, but until these browsers can view them all the same without me getting carpal tunnel from the hacks, I’m sticking w/my 4 legged tables…

    I love all of my fellow designers who have said fuck it to the regulators that say we all have to use CSS-only. I’m not fucking Tom from MySpace, ready to sell out to NewsCorp. 🙂

Comments are closed.