I Hate CSS

It’s official, I am fucking sick of CSS and the support thereof of various common web browsers. As I’ve been researching how to do what I want I have seen sniffy suggestions of the inferiority of using tables for layout of HTML pages and superiority of CSS for the same. Guess what, sunshine, when you use tables it actually works and even sometimes across browsers. I’m about this close to backing up entirely to a table driven layout like it used to be and forgetting about the goddamn CSS thing once and for all.

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.

30 thoughts on “I Hate CSS”

  1. Adam says:

    I hear you on that one! My old layout was table based… New one is a hacked WP default template which is CSS based. I hate it.


  2. Brian says:

    I know you’ve heard this before, but once you learn some of the idiosyncrasies, CSS ends up being a faster and more powerful tool for developing sites.

  3. Brian says:

    But, until then, it can be a pain the arse. I’ll hand you that.

  4. Terry says:

    The Table element is not deprecated so there is no problem in using it. Web designers like to see if they can achieve a table layout using only CSS. But after they prove it can be done, they invariably come back to tables. Occam’s Razor: the simplest solution is the best.

  5. Brian says:

    I’d have to disagree. Many, if not most, web designers have come to find that CSS is a better tool for designing and, once you learn how to use it well, is a better tool. Tables are not deprecated at all, you’re right. But the original intended use for them was for tabular data. If they’re used for layout, it’s not necessarily a wise use.

    Anyway, I’m not intending to flame or even be grumpy. Just disputing your claim there.

  6. Chris Peters says:

    CSS is probably 10 years off from being a reliable tool due to poor browser support and the users who haven’t upgraded their browsers (not their fault, so don’t blame the users).

    I do love the idea of CSS, but I disagree that it is slower to develop in tables. Tables are no problem with the use of server-side includes, which I would also recommend for CSS layouts as well.

  7. dave says:

    Chris and Brian,

    The key here is that when I use CSS for layout, it doesn’t lay out anywhere close between the first two browsers I looked at – Firefox on Mac and IE on W2K. I didn’t even make it as far as Safari or Opera or Linux – sample size of 2, 2 different layouts. You say it doesn’t take longer – it does for me.

    I understand what tables were created for, but as William Gibson says “The street finds its own uses for things.” If I can get the fricking thing to work with the tables and I am unable to in CSS, then so be it. I’m at the point where any more time spent on this is throwing good time after bad.

    Note too that the comments page is still boned, with the footer in the wrong place, etc. This all sucks.

  8. Andy says:

    I’d say just lose the footer. It’s down too low for anyone to notice on the main page, and it’s in the wrong place on the comment page. Just give credit to the template on the left side under your Meta links and be done with it! 🙂

  9. Marc Missire says:

    I totally agree. Since 2000 or so, I started seeing recommendations that we use CSS for page layout. Maybe even a year earlier than that. Lots of very authoritative statements that tables were for tabular data only, not page layout.

    And yet, it’s 2005 and I still mostly use tables. In a particular case I remember, I used CSS instead. However, that was an intranet application, and I was assured I only had to support a certain version of Microsoft IE. CSS for page layout works well enough for me in those particular circumstances, but that’s it.

    I have seen layouts using CSS which work well in most versions of IE and Netscape. However, they are always very complicated; also, the results vary too much across browsers. It may work in a particular one, but look just different enough to be unacceptable. Throw Opera and Firefox into the mix, and I don’t even want to think about it.

    I just use tables now. Experts get upset, but I finish the UI quickly and it works. Months later, these folks will still be upset, but at least I’ll have completed the application. Maybe even the one after that.

    I do advocate CSS for styles, of course. I haven’t had nearly as much grief in that area (but I’ve had SOME. Some browsers do ignore various style attributes).

  10. dotpointer says:

    For the first time I see a comment that actually is against the war against tables. It’s nice to see I’m not lonely with the problems according to CSS-only-based layouts. Trying to get it to work, but the more I try the more hacks I get to implement in the sites I develop(Firefox 1.x, IE 6).

    I guess we will regret the css-thing, as we did with frames and as we do now with tables. They will laugh at us in the future and tell us how stupid we was when we used “that old badly made up CSS language” …

  11. Rod says:

    I really hate CSS too. The past 2 years I have forced to design using CSS and not everything is as easy as it seems. Screw CSS! I’m a designer not a developer, and tables have been around for years and they work.

  12. GmB says:

    I think css is too flighty. I really think it has it place for styles. I think this is the proper place for css. I am interested in forming a group where we advocate the use of the right tool for the right job.

    Eg. Style sheets for some elements of some projects and tables for others etc.

    I am tired of people saying css is the way to go. For somethings css is great and should be used, but it is not for everything and not for everyone.

    Maybe it’a an emotional vs intellectual thing but css feels like building a house by using something other than bricks. Or just leaving every room laid out without putting any real walls around them.

    There are so many articles on this subject and more and more are popping up. It seems everyone just jumped on the don’t use tables bandwagon and is repeating the same rehtoric without all the facts.

    Here is just one article on a growing list for the use of tables in some places.


  13. Richard says:

    In a fit of rage I typed “I hate CSS” into a popular search engine and found myself here. As a systems engineer I’m all for separating the components of any application, and CSS sounds like a good idea: remove all the display dependencies into one (set of) file(s) which give you the power to make sweeping changes across an entire site, whilst alowing your XHTML to be beautifully semantic and display independent. Brilliant.

    Now if only it worked, and was supported, and hadn’t been designed by some kind of backwards thinking alien. I’m surely not the only person to have asked why there is no align property to allow you to do simple operations like centering divs! I’m surely not the only person to have been baffled by the decision to make divs only logically, but not actually, contain sub-divs but then go ahead and allow them to have background colours and borders anyway (so you get that lovely 1×1 pixel div with your entire page contents stuck outside it.

    God I hate CSS. Thanks for letting me let of steam on your site.

    PS, the reason you shouldn’t use tables is about taking tiny steps towards the dream of the semantic web. It doesn’t make them look any less attractive at times like this though.

  14. Joe says:

    This CSS shit sucks. Every year or so I decide it might be time to listen to everyone and start using CSS. And every time I have problems almost immediately. Padding, borders, nothing lines up, nothing looks the goddamn same as it does in every other fucken browser.

    Then invariably I start looking for guides and help and I come across some jerkoff snootily telling the world that “tables are for tabular data”. Guess what assknocker, the internet was originally for military and educational purposes, but I’m sure you don’t mind playing games on it, downloading MP3’s on it, paying your bills, and posting messages on it that say “tables are for tabular data”.

    Tables work. You aren’t some backassed thinking fucktard who can’t understand that “tables are for tabular data” if you use tables. You’re someone who wants to get something done and get it done so it works instead of screwing around trying to prove your moral superiority by using some fad tool that blows chunks.

    Seperating content and layout is a great idea in theory. So is communism. If you want to screw around for weeks trying to figure out why your division inside your division can’t seem to stay inside the container when you change the padding to 5px, have fun. If you want to get the site done, have it work, and look like you wanted, use tables and tell all the snooty CSS fucktards to get bent.

    Man…I feel better now.

  15. M says:

    I am another person who typed “I hate CSS” into google and came here. So let me say it again: I hate CSS. I have resisted for years the “tables are dead” mentality until now, when a client specifically requested CSS. Fine – I spend hours learning it, reading tutorials, I get the hang of it. I create the layout and get it looking snazzy in IE and Firefox only to be told that it looks totally different at different resolutions. What the hell? I can’t remember the last time I wanted to put my hand through a wall. Nothing is consistent. CSS – thanks for the reminder of why I love my tables.

  16. farlane says:

    Love the Gibson reference. I typed “screw css” into google. Every time I try for a redesign with a multi-column layout, I dutifully head over to A List Apart and try to make a div based layout work … I spent 8 hours this time but I guess it’s “hello tables” again.

  17. k says:

    CSS is bad, but CSS zealots are so much worse.

  18. dan says:

    CSS is great for styling text and backgrounds and such, but the div/layer thing is a nightmare like you’ve all said. It’s ok for static layouts, but if you want ‘liquid layout’ of any complexity you’re in for a mighty struggle.
    This trendsetting is really infuriating. I like the Gibson quote ‘the street finds its own uses for things’ – nice !

  19. Holy Cow! like minded individuals, thank God!
    (and any anyone else who is listening/reading)

    I have so had it up to the eyeballs with so called professional web designers who run their poxy little 10 page websites and run around like the sky is falling shouting CSS PURE,CSS PURE!

    I made a CSS test to prove the “web designers” wrong. One guy (credit to him for having the balls to try) took 25 minutes to make something that I had done in 5, It had errors all over it and he had the nerve to tell me that I was the one with the problem.

    I am so fed up with it that I am going to create a few “I Hate CSS” pages of my own so I can rant about it at my leisure and throw quotes all over the place, naming and shaming.

    Of course I will add with a nice fat link on it, pointing back here, because this is a great thread with some ‘choice’ words that I wish I had the nerve to use in public.

    CSS for styling is great, for layout…IT SUCKS.


  20. Snowy says:

    I just typed “hate CSS” into Google.

    CSS sites are not only bad for designers, but also for people who browse CSS sites. I’d say most people at times like to copy text off the screen and save it for reference, but you can’t do that on CSS sites. It’s impossible to grab the text off the screen.

    Who’s it all about anyway? The designers or the people the designers are designing for? Is taking away a powerful user capability supposed to be an improvement?

    Another thing is that CSS sites are usually yukky looking, with elements out of alignment all over the place.

  21. spaceboy says:

    I found this thread like it seems a number of other people did – I typed “I hate CSS” into google – along with “CSS sucks” – “CSS blows chunks” – “CSS is fucked” – “CSS bullshit” etc. You’d be surprised how much stuff comes up.

    Splitting table cells to make a convenient layout grid is an easily understood concept, like a simple building block, and you don’t have to delve deep into the esoteric bowels of rules based programming to build something with it.

    Yeah, CSS is great for styling and rollovers and drop-down menus. But when you have to pad this, and add a huge 125 pixel margin to that, and float the other thing over there, (*oops*, gotta subtract a few pixels from this box because the padding increased [?] its size), then add a tiny bit of hidden content using a pseudo-class to clear your nested divs so that your footer sits where it should, then install a repeating background image to create “faux columns”… oh yeah, and tack on a “Holly Hack” and a fix for IE-Mac, then finally nest the whole thing in a meta-container with auto margins so that it sits in the center of your browser in a big long shaft – man, that’s some kinda goofy shit.

    I know css is some very sophisticated high-tech stuff, but its layout capacity is primitive and crude. And crude, unwieldy tools lend themselves to simple… blocky… designs… wait. Here it comes… “Go to css zengarden!” (Yes, css zengarden can show you how to decorate a simple blog-like layout with big, static chunks of nicely photoshopped background images.)

    If css positioning was a better, less frustrating layout tool, loud and vocal “standards zealots” wouldn’t have to push the stuff quite so hard. It would sell itself.

    Fortunately, they seem to be aware of the shortcomings of css positioning over at the W3C. Here’s a working draft for the “CSS3 Advanced Layout Model”. http://www.w3.org/TR/2005/WD-css3-layout-20051215/

    It describes a concept called “template-based positioning” where elements are positioned by “mapping them into slots in a table-like template.” Among the types of cases considered as a reason for using template-based layouts are “Grids and other table-like layouts. This includes Grid layouts, Frame layouts and table-like subdivision of a rectangular area.”

    Here’s a blog post on the topic:

    Sure, it’ll be another few years in committee – and if it goes through, another 10 before browsers sorta kinda support it – but the proposal itself speaks for the advantages of “table-like” layouts.

  22. Bobette says:

    Like many others, I too typed, “I hate CSS” into Google’s search engine and found myself here.

    I’m frustrated, because I’m sitting here tonight, trying to alter a new template design I came up with into CSS code to make it more sellable.

    I too hate CSS! I’ve designed a few sites using it, but, overall, I despise it. And I don’t think it saves time. It costs me a lot more time to try and figure out how to design around CSS code. I know HTML inside and out and can design with it so easily! I’d like to kick the butt of whoever came up with CSS, because we designers now have to use it. I don’t see what is so great about it and why good old dependable HTML is now considered outdated.

    Thanks for letting me vent!

  23. Greg says:

    I thought you may also enjoy this rant that expands on what you’ve said about CSS:


  24. Pinky says:

    Just keeping the CSS hate thread alive.

    It’s funny how so many of these evangelical CSS websites don’t scale properly when browser windows are resized, or just don’t appear properly in the first place.

    I agree that we should use CSS for layout and tables for data. Since that’s the case, can everybody please sit down together and design an easy to use version of CSS that doesn’t make you waste 1.5 hours just trying to have two elements on a line at the same vertical aligment?

    Can I possibly just take the opportunity to say AAAAAAAARRRRRRRGGGGGGHHHHHHHHH?

    Thanks. I feel better now 🙂

  25. Xio says:

    I hate CSS with a passion!

    Tables are easier and more reliable, screw that!

  26. Jeff says:

    CSS blows chunks. Yeah good for styling elements, but for page layout… for Christ sake, I’d rather hit myself in the head with a hammer than delve into figuring out how to float this, position that.

    Screw it.

  27. Sulligogs says:

    I’ve been having a go at website design on and off now for about 2 years. It’s hard enough trying to see if I’ve got any design potential, but trying to speak the language of CSS at the same has has had me pulling my hair out on a number of occasions.

    I think the major problem with CSS is that it has too many rules. This becomes a chore for all the browser developers comparing notes against the standard.

    Like, an element can be positioned inside a DIV only if that DIV has also been positioned other than static and that the margins of a float can affect other static elements around it, but not vice versa.

    If CSS tried to think more like a table design, with the designer in mind, and not like a stupid computer language full of “overflow:auto” this and “margin-left:auto;margin-right:auto;” that then the world of table design and CSS may just meet in the middle.

    For heavens sake, it’s only a website!

  28. RHAS says:

    I to came here after i typed i hate css in google, i wanted to upgrade my old table based page with a css one for easier maintenance. But the code from css drives me nuts, tutorials one can find are troublesome its one big mess.

  29. Sathen says:

    AHHHHHH!!! I’M SICK OF CSS!!!!! My Header, and sub header are completely gone in fire fox, works great in IE6/7 . This post is not going to fix my problem!! BUT IT SURE FEELS GOOD TO VENT! LOL

Comments are closed.