CSS Sucks Bollocks

Over the past week I’ve spent hours trying to re-create my current blog layout using CSS, instead of the nested HTML tables that I currently use. In theory, it would make for a cleaner layout, especially if I wanted to make any changes, but I would have to change every posted page first. On top of that, the simple truth is that I can’t figure out how to get a fixed-sized, two column layout: a fixed right column width and an “expand to fit” left column. The closest I came to it was using percentages, but those look extremely ugly on smaller resolutions/screens, and that’s made me reject the entire project. I simply refuse to change all of my markup text and lose some existing functionality, in the process of it all.

Totally disappointed by this, you know – I mean, it just sucks.

137 thoughts on “CSS Sucks Bollocks”

  1. Boy, if this isn’t my rant too! I’ve always used tables, but I’m working for a guy who looks at using tables for layout like using Hitler’s teaching for nursery rhymes.

    I did, however, find the following article particularly helpful in figuring out how to do a three-column fluid layout. I think the basic principle is to float a fixed left and right DIV and set the center div with margins the size of both floats. Then the center div will move around because it’s not a set size, but it will never extend past it’s margins (a.k.a. over the left and right fixed columns)…. pretty helpful if you ask me.


  2. Was that some sort of april fools joke/comment? ;)

    what you want to do can EASILY be done with CSS, and more efficient. You just need to learn how to use the tools better.

  3. No, it was real. And what tools? I haven’t used a thing for CSS – I’ve been doing it all through notepad (and Whidbey Beta 1 for CSS references).

  4. > a fixed-sized, two column layout: a fixed right column width and an “expand to fit” left column.

    Put both columns inside a div set to width: 100%.

    For the right column, just specify float: right and specify a width in pixels. Your left-side column will expand to fit whatever’s left. Add your header div above those two and your footer below and you’re set.

    And if you ever need some inspiration or just a demonstration of the power of CSS, just check out csszengarden.com using a standards-compliant browser. All the examples on the site use nothing more than a sample XHTML document and CSS1.

  5. I have spent months trying to get my web site to lay out well in CSS. I give up. I am going back to tables. All I want is the stuff on the left to match on the right. (I won’t abandon CSS completely but the table layout wins – CSS for colors, fonts, sizes.)

    For example, I have a form where the labels are on the right and the fields are on the left. I CANNOT specify the height because sometimes the label on the left is bigger (wrapped text) and sometimes the fields on the right are bigger (displaying an error under the form field or have a password/confirm password field pair). I cannot get the dang text to line up with the fields. And if you have two fields side by side, good luck making the left field left align and the right field right align.

    Then there is when you want the left column match in height to the right column. And do it without specifying the hieght – let it dynamically size height to fit the content. For example when you want to bottom align an image on one column so you can frame the content with graphics.

    Yes, yes, there are gurus of you out there who say it can be done. My questions: why do you need a guru to make it work? And why do I need to waste my time becoming a guru to do it myself when there is a simple and elegant answer: tables? I have too much to do already, I don’t have time to mess with CSS when it just makes everything more difficult.

  6. CSS for positioning does suck. Why all of the b.s.? I don’t even feel like writing a comprehensive rant here b/c I’m too tired from struggling with CSS!

  7. CSS is damn ugly code,it’s no wonder you need a guru or editor to generate it.tables aren’t ‘elegant’ i’d say,they’re just straightforward compared to something that looks like compiler vomit.

  8. Oh my god, I’ve been trying to create a site in CSS for 4 days now and my head is going to explode! I’m going back to tables for layout. I was going to leave the text in CSS, but now I see it’s impossible to control the space between lines where styles change reliably between browsers. I feel like the professional programmers trying to make web design too complicated for non-experts with all this CSS crap. It’s too complicated! I know all the programmers will throw ridicule upon that idea, but the web is supposed to be a popular medium, not just for corporations that can hire programmers!!!

  9. Was there a problem with tables? Why was CSS even invented?? People say that “now you can change the color of your site really easily”! It wasn’t hard before! Go to your bgcolor and change the color. Damn. Tables it is, down with DIV!

  10. Maybe you should actually learn to use the tool before you complain about it, because if you’re having this much trouble you clearly don’t have any idea what you’re doing. This is like a VB programmer looking at C++ code and saying “oh my GAWD, this is different and I can’t figure it out, so it must be STUPID AND IT SUCKS!”

    There are a million and two reasons why CSS beats out those idiotic table based layouts every time. Just because you take an active position of ignorance doesn’t mean that the technology is bad. The rest of the world has already realized that tables suck for layout.

  11. Nice. Lets try this one at a time:

    CSS isn’t a tool. It’s a markup language. Speaking of markup, can ya read? I’m not the only one to have this trouble and I’ve worked extensively with CSS. In fact, I’ve been using it for style tweaks for the last 5 years. I’ve also used it for margin control and placement of certain things. Thanks for offering the benefit of the doubt.

    Whatever your million and two reasons are, it doesn’t change the fact that CSS still sucks for multi column layout with a fixed right column. If you’re so sure that CSS is better at this style of layout, feel free to create a style sheet for me that works on ALL browsers and I’ll take a look at it. Or better yet, point me to a tool that lets me design this layout via CSS… there’s a bunch that do this for tables, even if I do choose to use Notepad as my editing tool.

    I just won’t hold my breathe while you work on it…

  12. I am a demigod – I know virtually everything about everything. The only thing i dont know everything about is CSS. So i’ve spent 4 months trying it out. Conclusion: it sucks big time.

    I know every programming language in (your) known universe and beyond. 99% of readers (the users) need fast, efficient coding – the same for static websites.

    CSS has changed my websites from logical, easily readable code into 3rd-world-ugly non-adjustable dog-vomit: only to be understood & modified by guru’s like me – so only i can adjust the sites…

    If you love CSS so much, try this…


    fixed left column

    fluid central column

    fixed right column


    AND the footer is always at the botton of the window UNLESS any column is longer than the window, in which case the footer moves down.

    Using tables – 30minutes & code is readable/looks good.

    Using CSS Р3 weeks, still doesnt work for everybody & code is $%^ӣ$*& hideously complicated.

    So where is the proof that its worth any effort whatsoever ???????

  13. For complex positioning css is just HORRIBLE. For those that claim it isn’t, I can prove to you cases where you are flat out wrong. I can come up with simple layouts in html with tables that you end up having to do all kinds of unintuitive things to get the same results with css. Couple the problems then later on when you decide you want to add maybe a collapsable div or table inside one of your other divs. The whole thing can totally blow up on you.

    Just look how lame css positioning is for doing something that should be simple like positioning a div vertically in the center inside of another div. Why the heck can’t it support a vertical-align:center??? No, you have to do crazy stuff with margin percentages and auto. Then there are cases where you want a fixed width div but you want others to expand as the browser resizes… it’s flat out stupid what you have to do – give one div a huge negative margin and float others in the correct place. Things can, yes, eventually get done with css positioning but it’s often so obscure that when something breaks in one browser it’s difficult to track down the problem.

    To also prove my point, look at the source code of the different samples provided at this site: http://tutorials.alsacreations.com/modeles/ They nicely show how to do a lot of things, but look how obscure the solutions are – negative margins, different kinds of floats, some things absolute positioned, some relative. It’s a nightmare. You CSS gurus are fooling yourselves if you think this positioning stuff is “good.”

    I’m a css fan, but not when it comes to comlex layouts for websites.

    Also, if you are coding in something like JSP, you only need to code one layout in your tables if using something like Tiles or Sitemesh – so the maintenance factor isn’t a problem since you’re only maintaining one layout page.

  14. Out of frustration I just typed in: css positioning sucks into google and got you guys!! thanks for the reality check. I’ve been struggling with this all day and my main frustration is trying to get the layout to work in BOTH IE and Firefox. Not successful yet (even with IE work arounds which already tells you there’s a problem). No doubt there’s a way but why the heck is it so amazingly unintuitive!

  15. Is there really anything wrong with using both tables and css together wherever it suits you best? I can understand Beth’s frustration when it comes to css and trying to get something that conforms to multiple browsers… I personally like IE and Firefox the same for browsing and just deal with the fact that I can do some things with one and other things with the other (I’m thankful to everyone who has contributed javascripts that can help with a lot of the cross browser issues out there)… I also agree with Randy that you can’t slam css because it hasn’t worked for you. I find that the only time things get messy with either css or tables is when people get lazy and don’t comment or indent appropriately (I’m as guilty as anyone)… well, that and when people try to “style” every element instead of creating a class or an id.

  16. You only need to take a look at the agonies the CSS gurus go through to realise that unless you’re specialising in CSS you ain’t gonna get it right. I gave up on CSS positioning long ago when I realised the days, weeks and months were slipping by when I could be concentrating on Perl,PHP,MySQL,PostgreSQL to get some real work done.

  17. I never found one client who gave me any credit, or extra dosh, for a fully IE5-hacked standards compliant CSS layout. CSS is for people who don’t need to earn a living.

  18. Geez, what a bunch of inept amateurs. Leave web design and real websites for the pros. All of you, slowly back away from your computer, and take up something simple, like knitting. That’s not too hard. Otherwise, educate yourself’s, do some actual work, and stop substituting intelligence with laziness. me.gothrowup();

  19. I’m a 12-year web development veteran and I think this whole CSS thing is just another flash-in-the-pan.

    The CSS advocates are correct when they say that you can do wonderful things with stylesheets if you know what you are doing. The trouble is that to get everything standards-compliant you have to make coding revisions and study your life’s work keeping up with it all.

    No commercial artist wants to spend all their time looking at tags. At some point you have to give the aesthetics of the GUI your focus using what works for the project, instead of only accepting what will fit into a stylesheet scheme. After all, when it comes to visual design, the most noteable contribution CSS-based design has added to the web design landscape to date is… that monument to bland, utilitarian cookie-cutter design: The 3-column blog.

    I think that CSS freaks should do this: Stop preaching the nerd gospel of the obsessive coder to other commercial artists and developers. Get together in a think tank and put all that coding, research and effort to work in some kind of killer web development app. Sell the app to all of us who don’t have the time or aptitude for coding all that mess and we will make you very rich.

    Come on CSS folks, wouldn’t you rather be rich than right?

  20. CSS would be a hell of a lot better if it was supported by browsers like it should be. Unfortunately, as most people are still using Internet Explorer (which is limited in its CSS display properties), creating a layout that keeps your standards across mulitple platforms and browsers is not so much impossible as it is a giant pain in the ass. I’ve been using CSS to modify the look of blogs for ages (since 4 years ago, when I had a Xanga and decided I wanted to make it look less ridiculous). It’ll either work well, or be completely horrific. It seems like the biggest problems occur when you try to put things in a certain spot. It’s next to impossible. Half the positioning tricks that should work usually don’t, or if they do, they’re off anyway.

    Even the relatively simple stuff can be off in some browsers, especially IE. Firefox isn’t perfect either, but it’s better.

    Who knows anymore. I gave up trying to figure everything out in CSS. Here’s what I’ve got right now, using CSS to alter a basic Myspace page to make it even more basic. http://www.myspace.com/munificence

  21. I’ve managed to learn three programming languages while trying to get CSS to do a relatively simple layout.

    Its been two weeks and although i’ve learned a lot more about CSS, it just sucks at the positioning you guys have argued about badly.

    I know its going to be a powerful tool and knowledge to have once I master CSS. But god damn… this is frustrating.

  22. Thank god for this piece of sanity on the web. I’m sick of being told how stupid I am for still using tables, because CSS is the future and tables are for lamers. If CSS was to work the way the gurus claimn I could use CSS to style any document the way I want, but you can’t because for some things you need to nest DIVs in a specific way to get the job done.

    I’ve tried to ditch tables and gone back to them time and time again. Maybe in 6-10 years things may be different.

  23. CSS is pretty much the ugliest thing in computing since gotos (even gotos was nicer). The geniouses at w3c decided to spec things to be really unintuitive. But it doesn’t end there, since browser makers screw things up by not agreeing to a single correct implementation of the said spec. So instead of getting things done, we act like some 18th century printing machine operator messing with layouts.. layouts for fvcks sake.

    We’re living in the stone age of computing.

  24. Amen brothers and sisters. I don’t have a problem with the CSS markup semantics, it’s just that to create a seemingly simple layout with CSS requires employing so many bizarre and unintuitive tricks reaped from tedious hours of googling. Hell, the fact that websites even EXIST to explain how to make simple column layouts is enough to see how ill-equipped CSS is. While these websites extoll the virtues of negative margins/pads, hidden overflows, and superfluous nested DIVS to create the most basic layouts, it’s time to wonder–WTF? Expressing a friggin columnar layout should require a SIMPLE style definition!!! It’s pathetic what we’ve got to do now!!!!!!!11one

    Thanks for the rant space.

  25. Its total madness. I don’t even want a 3 column design. Just a few divs and images positioned. Looks great in firefox and IE (finally), but wtf, try it in Opera and things are overlapped. Sure, both people in the world who use Opera will be offended, but still… I shudder to think what it looks like on Mac. At this point, don’t care, they can deal with it.

    And negative positions??? I “get” it, I know geomety, but come on, its so unintuitive what things are relative to, the only way to know when to use negative is trial and error with endless refreshs.

    It all feels like 1994.

    And yes, it really IS the browsers fault they don’t all interpret css the same, but there has got to be a reason and the reason is because css is inherently flawed

  26. Thankfullness for this website! I was doing searches on the web for CSS sucks and found this page. I am sick and tired of the CSS gods preaching how CSS is trying to go web standard. Get rid of that sh!t, it’s redundant and extremely time consuming. It’s so lame that just for fun I tried to layout a simple looking page in CSS and it took me ALL DAY vs. what would of taken me 30 minutes to do in tables. Where’s the ease in that? And CSS more accessible, easier to maintain…bullsh!t! I see arguments the CSS geeks mention that tables were not meant for page layout, and CSS is? Tables pretty much started the web and now you’re getting the yuppies coming in next door and trying to rezone their property lines. I’m totally cool on using style sheets for text within a table environment or using style sheets for php applications but whoever invented the use of CSS to layout a complete web page or entire website needs to be kicked in the head. I get a laugh out of the defenders who say, “CSS is easy, you just have to learn it.” Give me a break, tables have worked just fine for users over many years. It’s not apparent there’s all these horrible issues users had with tables. Perhaps a couple here and there such as printing a page but look at pros and cons people. I can put a lot more cons againts CSS as well as many others on this site. Who are we trying to please by learning CSS as a full layout for site design? As somebody said, the client or the CSS gods? I could care less what others think when they do a “view source” and realize it was tables that layed out a page. The tables still do the job! In result, CSS or tables? The site still looks the same. Yeah you guessed it right, I’m lazy and don’t want to learn CSS. Kidding, CSS sucks.

  27. CSS is simply broken. What’s so sorry is that it was designed broken. I just want a java.awt.BorderLayout in CSS with divs, how hard is that. Don’t want tricks and hacks to make it somewhat work on some browsers some of the time. It’s very difficult; ugly. I get tired of banging my head against the wall for such an idioticly simple layout. Ahh, tables (with minimal CSS), done in a few minutes. Stupid CSS.

  28. I’am a css,xml,html,xhtml,java,.net,php,c# guru

    When i am officialy working, i only use 1 table for making a 2 or 3 column layout. The rest is div. The only reason why i use this table, is because it is damn fast, works in any browser instantly, takes no hacking and time consuming coding in the stylesheet or java.

    In my spare time however i spend weeks even months to make a feature-rich 3 column div layout that work in all browsers, it takes all kind of hacks to make some things “seem” to work. but switching browsers takes me out of this illusion again.

    If i would do a tableless layout in my worktime i would have been bankrupt. The whole “must use div” for layout is ridicalous really and currently not useable to any professional because it just takes to much damn time to work out all the nags for compatibility.

    If you spend a day to make a 3 column div layout what you could do in 2 minutes with just one table. then you must be crazy or unemployed.

  29. You are all idiots. Learn css and you can implement web standards. – Hyde.

    I do apologise. css is an experiment gone wrong. My friends and i are working hard to stop people using it. The original ideas of giving more design power were good – but replacing tables was never the dream. – Jekyll.

  30. What are you people doing? i see so many of you going on about how great css is. i should have stopped it, but i was busy. It is listed on my Wall Of Shame, next to Comets, Dinosaurs, DRM, Fossil fuels, Scientology…

    But it is refreshing to see the growing voice of Anti-css. Spread the word: css was a mistake.

  31. I’m a very experienced (15+ years) (web)programmer and designer (for who cares).

    I agree with most of the rants here about css.

    This is my opionion and vision:

    CSS suits document-like designs best where the browser is used as a simple document viewer. Unfornately, browsers are not only used as simple document viewers, but very often as pseudo application windows where the viewport acts as the ‘client area’. It’s this hybrid use that the CSS designers seemed to have ignore completely.

    For those who program in Java, something similar to the layout managers used there for laying out components (analogous to div’s) on the canvas is what web designers really need. That way components can be *easily* made to stretch to fit, have magnetic edges, etc. etc. Only then can web designers can stick to what they do best instead of spending weeks googling for and reading about css hacks.

    I suspect the CSS used today, will be a completely outdated technology in a couple of years. Either the open-source community must come up with a new and practical alternative, or Microsoft probably will (with all the negative consequences of that).

  32. CSSWHORE is the perfect example of why I hate CSS, asshole zealots who worship it and declare jihad against CSS infidels. Get a life.

  33. To preface this, I’ve been tearing about computers and putting them back together since I had the dexterity to handle a screwdriver. I’ve got 4 computers and a laptop in my house that are powered on at any given time. I’m a pretty freakin’ big geek.

    But I can’t help but feel that CSS-P is the programming geek’s revenge on graphics designers the world over. That this whole “semantic markup” thing is some sort of horrible joke being played on visually intuitive people by folks who eat sleep and breathe mangled code.

    “Separate your layout from your content and you will achieve inner peace!”

    When exactly can I do that when I have to spend 10 times longer trying to lay the site out with these asinine CSS positioning paradigms than I did DESIGNING it in photoshop?

    “You shouldn’t design the page in photoshop, you should markup the content and then come up with the layout. Content, then markup, then layout.”

    Fuck you and your shitty code too. I design the layout first, because the layout dictates the design elements, like where the titles go, and how big they can be, and this and that.

    For about 5 minutes, I was starting to buy into the bullshit on that csscreator.com website, but thank god I thought to google “css sucks” and got the opposing perspective.

    <table>s forever!

  34. The true fact is that CSS purists like to advocate the use of CSS simply because it gives them a part of the web back. The fact is and will remain that tables are amazing when it comes to designing cross browser compatible web pages.

    The biggest and most RIDICULOUS chant of CSS purists is that “Tables weren’t meant for layout!” How dumb. How many things in life were never meant for what they are used!

    So why do these CSS geeks brag about CSS. Because it allows them to earn more money. They can sit, use javascript (which is a horrible tool considering that you are at the mercy of the web surfer) to make their CSS website cross browser compatible and charge the poor client $700 for web design! What a rip off.

    You could create a table version quicker and for cheaper. For those who claim “future compatibility,” just remember one thing, TABLES ARE HERE TO STAY. You can write valid markup code using tables. Tables are a part of CSS. It may not “be correct” but you can use tables to ensure future compatibility.

    Ever look at the web giants. Most use tables. Why. Simple. Easy. Cross Browser Compatible. What more could you want.

    CSS-P is a new FAD and has given scrupulous individuals an opportunity to rip of clients and hence they have tried their best to promote this menace. Stay away from CSS-P. Your website will break. Use Tables. Tables rule and will always rule.

  35. Sure are a lot of unfounded negative comments about CSS here :-(

    Anyway… the solution. Here’s the markup:

    [div id=’header’]

    header goes here


    [div id=’content_wrapper’]

    [div id=’content’]

    content goes here



    [div id=’navigation’]

    navigation goes here


    [div id=’footer’]

    footer goes here


    and the css:

    #header {

    clear: both;


    #content_wrapper {

    float: left;

    width: 100%;

    margin-left: -240px;


    #content {

    margin-right: 240px;


    #navigation {

    float: right;

    width: 240px;


    #footer {

    clear: both;


    basically, what you are doing, is shifting the content_wrapper left by the width of your navigation block (240px in my example), then shifting it back in the content block.

    Don’t give up on the CSS ;-)

  36. Glad I am not the only one who thinks CSS sucks.

    I have yet to see one site that looks attractive when it is done with 100% CSS. As a graphic designer, things I do I want them to look good. With CSS it is just not possible.

    it might work for a blog, but who the hell wants to sit around a design blogs all day? Real companies want websites that look good, usually looks are above the content they have there. And, out of the 100 websites I have designed in the past 3 years, I can say there was not one customer who was concerned about their site being seen on a palm pilot, cell phone, or by one of the browsers blind people use. They were all 100% more concerned with how the site looked, and if it was easy to navigate.

    It is just not possible to make a site look good in CSS. I would love for someone to prove me wrong, but in 2 years of searching, I have not seen a visually attractive 100% CSS site.

  37. Methinks the CSS advocates in this discussion doth protest too much. Ad hominem attacks on the intelligence and competency of anyone daring the question the “tables are evil” dogma convince us skeptics of nothing but your lack of a substantial argument. I found this posting by typing “CSS sucks” into Google, not “CSS advocates suck”.

    Some aspects of CSS are indeed powerful and elegant. We don’t want to return to the day of multiple nested tables with font tags in every cell and 1 pixel clear gifs. But HTML and CSS provide very poor support for some very common constructs — column layouts and forms among them.

    The float property is intended for wrapping text around an image or other element. The W3C CSS specification states that it declares an element “to be outside the normal flow of elements”. Using it to create a column layout is a hack requiring non-intuative margin settings in other elements to prevent a longer column from wrapping underneath of a shorter one. BTW, if you test the above example you’ll find that it doesn’t work. The “content goes here text” is shifted off of the page. You need to set the left as well as right margins of the #content element to 240px.

    The same layout can be accomplished with a table with roughly the same amount of code. Try it and compare it to the floated div approach in the following test:

    1 – Set background-color properties for the header, content, navigation, and footer in both the table and non-table version.

    2 – Set the height of the content_wrapper element (second row of the table version) to some value, say 400px. Notice that the entire content and navigation areas have the background color (almost certainly the desired behavior) in the table version but only the text does in the floated div version. One might think that setting the height of the content and navigation elements to 100% would solve the problem, but it doesn’t quite work that way. The content column background fills as you would expect by it wraps underneath the navigation column. You have to explicitly set the navigation column height to 400px to get the desired appearance (yes, I’m sure there is some other way to do the same thing, but who want to bother figuring it out).

    3 – Resize the browser window to a very small width. In the table version the columns shrink until the text cannot be wrapped any more and then a horizontal scroll bar appears. In the floated div version some of the text disappears completely (because of the funky margin settings) until it finally appears underneath the navigation column. Yuck!

    Can anyone offer a cogent technical reason that a table should not be used in this situation?

  38. I’d like to add to this and challenge any CSS advocate to point me to a site that is 3 columns, fluid and completely separates layout and content – i.e. no extraneous wrapper divs or clear divs. CSS just isn’t up to what it sets out to do.

    Also, if you have a site that has 100s of pages, you really should be using a CMS and that means you only have one template to edit to change the layout – this is true separation of content and style.

  39. I hate CSS positioning.

    It’s unintuitive and needlessly complex.

    A three column layout is not rocket science. It should not require hacks and miles of mark-up.

    Aligning a couple of elements on a page with precision should not be a difficult task – hell, precision is something computers EXCEL at!

    And you can’t blame it all on the browsers. If they all interpret the “standards” differently, then perhaps the W3C has been to ambiguous in their specs.

    Why, whenever I attempt an all-CSS layout, do I get the feeling that I’m trying to make CSS do something it was not intended to do?

    Sure tables are inelegant, but they work, and I’ll continue to structure my overall page with a single table, standards be damned.

    and yeah, using a table for layout is a hack in itself, but I have the choice between a single hack that will work on most browsers consistently, or using a whole lot of obscure workarounds for individual browsers leaving me with messy mark-up and a headache.

    And quite frankly, I don’t see how using a whole lot of nested DIVs is better code than nested tables. Back in 1999, I remember one of the biggest selling points of CSS was the fact it would do away with complicated nested rubbish.

    Yeah, right.

  40. Wow, this thread has been going for over two years!

    I’m currently learning CSS and it only took me a few days to come upon the whole 3-column layout, holy-grail, whatever you want to call it. I thought “Eureka! Here’s what I need to learn! A marninally complex layout in CSS. Now I get to see what CSS is really capable of”.

    I was stunned to find the authors of the tutorials tap-dancing around all kinds of browser bugs, employing all these bizarre ultra-wide margins and floats and at the end still handing out caveats about compatibility. What part of “Standards” is this?

    It certainly made me feel better about the fact that I’ve continued to use tables for so long. I could crank out an ugly table-based version of the layout in minutes and have it work on just about EVERY browser.

    I can see the need to move away from tables and I can see the benefits of CSS separation of code and content, and I think there are some truly great things that CSS has to offer. But there’s a simple fact to be faced: CSS just isn’t there yet as a web layout solution. The anti-table CSS proselytizers aren’t acknowledging reality.

  41. If you are a developer you may not like css because it isn’t necessary if you are making a very plain layout like 99% of the sites on the web.However if you area designer and and you would like to build a complex design with overlapping elements CSS is the way. CSS will save loads of time when making style changes site wide. If you only do work on sites with 3 pages it won’t be as useful to you. However, anyone who says they are a hardcore web designer or developer must learn how to use CSS. If you are complaining about CSS and how hard it is to implement you should bitch at IE and their lack of standards. Cheers CSS rules tables are for databases and spreadsheets.

  42. Ok.. so this is my take on css. It’s alot like communism. I’m sure it’s wonderful in books, but, in real life scenarios. It pretty much blows.

    I used to crank out a really light weight table layout and i knew for sure how it looked on every browser. Blame, ie6, mozilla, safari, your mother, etc. for it’s incompatibilites… I don’t care.

    The bottom line is that css forces you to reinvent how you design. It’s more time consuming and frustratring. And in the end the only thing that really looks great is the “view source”. lol…

    The day all web browsers get their shizzit together and make their browers work identically is the day doctors and receptionists make the same salary across the board.

    Obviously this is coming from someone who is rather frustrated with css.

    Ironically tho. If you are someone who fancy’s a real challenge, you can learn to appreciate css uses.

    It’s been a double edged sword for me.

  43. I have been found guilty of advocating the less layout at work. Today is my last day creating sites in pure css and xhtml. Its like crack for coders you know its bad but you just want more.

    Im done with this css shit im out…

    Just after i get my wrappers working right on this site….

  44. CSS is great… for styles (fonts, colors, borders, buttons, etc) but for complex, solid layouts that behave consistantly cross-browser, tables are so structurely intuitive, it just makes sense.

    A 3 column flexible layout with a footer in html?

    [table width=”100%”]


    [td width=”xx”] left [/td]

    [td width=”xx”] content [/td]

    [td width=”xx”] right [/td]


    [tr][td colspan=”3″ align=”center”] footer [/td][/tr]


    It’s so clear and basic, it’s the reason why there are so many personal websites today. In CSS there is so much you have do to make work correctly. And when you minimize the browswer window, making it narrow, content starts shifting DOWN and tearing apart the layout. Sure min-width is great, but IE doesn’t support it, so you have to do some pretty FUNKY hacks just to emulate it. I don’t want to feel like I’m solving a riddle when I’m making a website.

    CSS and tables are meant to work together, I don’t think it was ever intended for CSS to replace tables. Ever try to make a 9 row x 4 column table with css/div’s/ul/li? I have, it works, but I want 2 hours of my life back, because I could’ve just made that same table in less than a minute with a html table. And these are just BASIC layout examples, for coding anything more complicated than a 2-3 column blog, laying a site out without tables would be like building a house in outerspace.

  45. Using tables for layout is the worst thing you can do. Go research in google, you should find something that tells how to do a 2 column layout. I can do it from head.

  46. ed,

    If table are so bad , then why is the login button on your site completely off to the right

    of your css laden site? I can’t even see it without having to use the horizontal scroll bar.


    Have a good time making it look okay in IE. I don’t think I’ve ever seen a table do that.

  47. A quote from the w3c website http://www.w3.org/Style/Examples/007/center.html:

    “CSS level 2 doesn’t have a property for centering things vertically. There will probably be one in CSS level 3.”

    This was written in 2001; has there been any improvement on this SIMPLE issue since? Vertical centering is so fundamental to layout and should have been one of the first items addressed in light of the basis for the box model concept.

    Please, someone tell me I’m wrong. And I don’t mean by assigning the properties of a table cell to the div in question as suggested by the example page here.

  48. wow, I really though it’s just me hating CSS. I really think it’s crap, by design. The concept is good, especially when you can change one file and change a large section of your website at once. The reality is that, yeah, CSS sucks. It’s a seriously flawed implementation of a good idea, not a wonderful idea, it’s not that exciting. I have no clue how it became so popular.

  49. Ha! Yeah http://www.em-webs.com/ your button goes way off right on ie 6 and 7. I love ie! website will never be this fun with out it!

    I don’t think “Using tables for layout is the worst thing you can do” as ed said.

    Table is one of the best hack which will always work in most of the case including your case too!

    Don’t get me wrong, I am extensively using css too. but table is not that bad especially when you have to get something done fast with little to no problem on all browser today.

    I found that table mix with css is the best way for me.

    Whatever less problem, fast will work.

  50. As mentioned above, CSS for layouts is horrible. I’m not myself a designer, but the fact that there are sites that have to explain how to do three column layouts is a red flag. (And then when you actually look at the examples in IE6, the columns overlap each other…blech.) No doubt there are designers where I work who can get CSS to do what they want. But they have to hack around with it for half the afternoon, and then they are so proud that they got the footer to attach to the bottom of the browser window, or a div to stop dropping under another div, or whatever, and they had to use weird garbage like “w\idth: 80%” (the backslash is intentional) to make things work. If experts have to hack around with it that much to make things work, that means CSS sucks.

  51. Thank god for people who still have common sense. There was a time when I bought in into all of this CSS crap and thought I just needed to learn more to achieve nirvana. Well I learned, studied the W3C specs, and I found out that CSS positioning was designed flawed. It simply can not work, and guess what? It is not going to be fixed – because it is a “standard” now. Somewhere somebody made a mistake with the box model, and few other things and now CSS can only gain complexity in hopes of masking the mistakes. CSS is a great tool for styling, but it will never take over positioning, because no one really wants it to take over.

  52. If CSS were meant for layout, would it not be called Cascading Layout Sheets?

    The argument that tables weren’t meant for layout is weak. Of course they were meant for layout! That’s exactly what they were meant for!!!! Creating grids!!!

    On the other hand, CSS was not meant for layout. It was meant for styling.

    Tables are the engineer; CSS is is the interior decorator.

    You can argue about the definition of tabular data, but allocate some time for arguing about the definition of styling, too.

  53. ~

    OMG~! Thank-You, THANK-You, THANK-YOU~!

    I built my first web site in 1999 (went live Jan. 1st, 2000) using only notepad and pretty much copying Yahoo’s site layout (table based w/header, 3 column, left nav, footer, etc) after reading a book (the venerable Laura Lemay) on tables, frames (yuck!) and CSS (skipped this section) and then sold guitars all over the world from this SIMPLE and FUNCTIONAL site.

    Since then I have designed sites for myself and others (some even paying clients), learned Linux / Apache enough to manage my own server(s), repair and program computers for fun and profit (I own Macs, PCs and Linux boxes) and have learned almost enough of several programming languages to get myself into trouble with them.

    My latest “commercial” web site was for a friend just recently (12-07) and I used a DW / CSS based template (for the first time ever) to get started and finally play with and attempt to learn about this thing called CSS and “how great” this is and how it is suppoed to change the way that we design for the web. I actually felt a little stupid for having done MANY sites and still having never learned this “irreplaceable” tool.

    OK., so using CSS in order to change site formatting of text colors, backgrounds and other attributes seems SO intuitive that I wondered what took me so long to learn / embrace this technology. It is like NOT using templates in order to update a 200 page site., crazy and why would you NOT use this?!??

    BUT., then looking at the “layout capabilities” of CSS was making me NUTS., watching my neatly designed elements move all over the damned place, almost at will whenever another element was resized or changed, and then not even being able to figure out (in the few hours in the day) certain other EASY layout tasks that with tables would have been CAKE., I finally today in frustration typed into Google, CSS LAYOUT SUCKS and found THIS page., YEAAAAYYYY~!

    Thank-you folks., now I do not feel so bad., or like the IDIOT that I was starting to think that I was because this was just NOT MAKING SENSE., at least not in the three weeks that I have dedicated to this. Granted, I did not spend as much time on this task as I spent learning Linux / Unix to set up my first server box, but PLEASE., we are talking about SIMPLE freakin’ LAYOUT that tables has done just FINE all along.,

    AND the cross browser layout is as expected, which is critical if one is designing for the real world (WWW) and not for ones personal fancy. Hey, you CSS wizards out there, if you truly CAN do whatever you want with layout (and I mean SPECIFIC positioning!), then fine., but why should I have to search the ‘net all afternoon to try to figure out how to do one normally very simple layout task?!?!?

    Perhaps I am just not “getting it” yet., and that CSS layout truly IS “elegant” and do-able., I don’t know., but I actually have other things to do in my life and spending two weeks to learn how to finagle some convoluted code in order to place an element FIRMLY where I want it on a page is just not practical., especially when my intuition tells me that this is NOT an exact science since the code to do this looks like CRAP.

    I would love to hear from some CSS “expert” and then give them an example of a complex page layout that just does not seem to be possible using CSS, but is otherwise SIMPLE using tables with proper padding, spacing and sizing. Perhaps tables are not the most elegant method, but they WORK and work consistently and easily. Does CSS do ALL of this AND do it ALL of the time?!?!?!??!

    If CSS layout is not ALWAYS precise, definable and AS EXPECTED, each and EVERY time and in ALL browsers, then WTF., if I have to spend three days playing with crappy code and STILL not get ONE element to STAY where I want it on a page in EVERY browser., then WTF., if I want to use CSS for a SIMPLE and straightforward BLOG or personal site and not worry about EVERYONE seeing the EXACT same thing., then fine., but otherwise., WTF~!

    I am now going to continue on my quest to learn the PRACTICAL aspects of INTEGRATING tables with CSS and using them BOTH to do what each of them does best, rather than trying to bang my head against the wall in order to get relatively simple design elements to sit right where I put them on the page EACH and EVERY time using CSS in order to do this., YEEESH.,

    Thanks again.,



  54. Thanks for the posts and comments. I have been trying to design some layouts in CSS and they just suck… even the simplest thing CSS fails at. Today was the last straw on trying to do any kind of layout in CSS. I was reading how to do a 3 column layout and clicked a small unassuming link for known issues with the layout and there were about 5 pages of exceptions and problems with various hacks to make it work ok in most browsers. But they couldn’t even make it work right in all major browsers and this is from the so called experts.

    Today I did a simple div with a width of 600px. Inside of that I put another 2 divs with width 100% Then I made an additional div and added a 10 px left padding in the second div. If you pad the div it will force the right side out 10px past the containing divs 600px that encloses it…. WHAT???!!! How does that make sense? This is basic stuff and why CSS sucks so bad at layout. I will use CSS to style fonts and divs but for any positioning I am just going to stick with old school proven techniques. Thanks for the post and its nice to see I am not the only one totally annoyed with CSS.

  55. I’ve designed and developed (and sold) a LOT of websites for a LOT of money, and I can tell you that all of these “standards Nazis” that insist that table-based layout is blasphemy — well, they have their heads in the sand. They’d obviously rather “look smart” than actually design a productive, good-looking, money-making website.

    Now, that’s not to say that CSS itself is “bad”. I use CSS all the time to apply fine-toothed detail to things. But when it comes to the “shell”, I use tables. Not because I’m “pro-tables” or “anti-DIVs” — rather, only because I’m smart enough to use what works best for a given task.

    Cross-browser rendering of tables is nearly (if not exactly) identical across the board, whereas there is plenty of discrepancy with DIV rendering. That said, why tweak, and then tweak your tweaks, etc.? Why not use what works — especially if what works not only works BETTER but is EASIER to boot?

    It’s amusing, really… I came across an article recently touting DIVs over tables for “bandwidth efficiency” and all-around better design practice. The article then presented a table rendered first as a TABLE, then as a DIV. The DIV version was “oh so elegant”, or so they’d said. The amusing thing is that when you look at the article in a variety of browsers, the DIV table was rendered inconsistently, whereas the TABLE version was exactly the same. Specifically, the table in question had a dotted pink border. When the border was “reproduced” using CSS, the “dotted 1px” style was rendered differently across browsers. In IE6, in particular, “1px dotted” turns into a dashed, choppy mess than gets even messier as the page scrolls.

    Now, this may seem minor to some, but in my eyes, it’s the polish that matters. That extra attention to fine detail… that’s how you set yourself apart.

    Now, of course, you’re going to get those moaning about IE and its poor standards adherence, etc. You know what? IE6+IE7 still represents 2/3 of the browser market share. Quite frankly, I don’t care if IE is “broken”, or non-compliant, or whatnot. All I care is that the sites I design look as similar across browsers as-is possible. That said, I’m also not going to spend loads of time devising hacks, tweaks, ______ (call them what you will) to make “smart people” techniques work where they’re just not suited. My time is much better spent improving the features and functionality of sites, not making the underlying framework meet the standards-du-jour.

    The bottom line is that I care about the END RESULT. I care about providing the best user experience. I care about delivering new features. I care about developing creative, innovate websites.

    Unless you’re digg.com where the majority of the user base is of that “smarter than thou” mindset and would rather appreciate your site’s markup than your site’s content — stick to delivering the best experience for the user.

    I’ll close with this… when I develop a site, in the back of my mind, I’m thinking about killer new features and a massive user base, not fancy markup. There are plenty of sites out there (big sites as well as HUGE sites) that have sold for gobs of cash. Was the buyer buying because the site was table free? Not hardly. They were buying an idea, a market, users, a site that people use. Spend your time on the areas that REALLY matter. THAT’s smart development.

  56. Did the same as some of you. Out of pure frustration I typed in “css sucks” in google and tada I found you guys. I tried now for 2 days to arrange some really simple stuff with DIVs and CSS what I could have done in Minutes.

    I already wasted hours trying to create 5 Tabs whereby each tab has a Background image, and Text. It’s almost impossible to get those *@#%�! DIVS into one line with a specified width and height. One of the reasons why Tables aren’t recommendet are screenreaders and stuff like that. But since they are so good for positioning, why the heck did the W3C not specify a layouting table!

    So, now I’m gonna fix my problem with a table :P

  57. Tommy, there is a way to do what you want in CSS. It’s just that it isn’t obvious. What you need to do is use an unordered list ul/ul with the tabs as li entries, then use the style sheet to tell each of them to have a background-image (which therefore has fixed height and width). The final trick is then to tell the list (via ths CSS style sheet again) to diplay “inline” (in sequence across the screen) rather than spaced out down the page like a normal bulleted list.

    It does work well, honestly, and it is used alot in CSS design. One advantage is that you can qucikly change your backround images or the size, style, layout of your nav tabs just by manipulating the CSS once you get used to it.

    But I agree that having to control tab layout via “lists” (and even deeper anomolies with floating divs etc) is a sure sign that the W3C project didn’t even consider grid-like onscreen layout when they were developing CSS. They all come form a coding or “accessibility” background with very little appreciation of what graphic design means and how it works. So the lack of a decent layout model in CSS two has meant odd using ingeneous workarounds like this. They are trying to listen right now with a promise that CSS3 will be better… We’ll see.

    CSS does work extrmelely well for many things, but it is hard at first for visually driven people to design by remote control, as it were, via the style sheet instead of directly manipulating elements on the screen. You do get used to it and there are alot of advantages. But basic strcutural composition is a real pain in the neck.

    It helped me to understand that a “div” is not a box or a frame as such, but just a semantic device for grouping html elements together. It can be turned into a box by giving it some border, margin, padding properties. Yeah, the positional model sucks and should be improved, but it’s the way things are and we all have to learn to work with it I’m afraid. The trouble is you can’t just dive into CSS with the old table/grid mentality, you drive yourself nuts. I know I’ve been there! (But I got better…:-)

  58. CSS, what the $^%&$^*#&^%$?

    Just spent two days trying to figure out why my divisions show up different in every single browser.

    The mighty div gag!

    10 pixels to the right, 50 pixels to the left, absolute here a little relative there, … hmmm maybe static positioning … nope … how about relative … nope … a little auto height … that took out the whole page … *&$%^*#&$^!!!

    I am going to jump in the lake and its -20 below zero! It’ll be fun compared to this CSS crap.

  59. wow this thread refuses to die..and in the years that have passed Tables STILL are the most stable, easiest, and cross-browser compliant layout method on earth.

    An all-css div layout is STILL buggy, unreliable, not very cross browser compatible, extremely difficult, reliant on countless ‘hacks’ and tricks. etc.

    a Three column expanding layout is STILL impossible in CSS, every single example ive ever seen breaks when you change the window size sufficiently or use a different browser.

    That 3 column thing is easy as pie in tables. If it aint broke, dont fix it. Tables work. Period. No reason to switch. By all means use the left column of your table to have the menu, and put a div in there to style the left menu, but tables should still be your mthod for general layout.

    In a way, Im glad most of the internet has gone insane and is attempting to design stable layouts in CSS divs only. Because it ensure I have tons of gainful employment in the years that follow fixing these ridiculous, css-div based layouts that rely on a 300 page css file to “work” by converting them into nice, stable, table-based layout.

    have fun with that expanding 3 column layout css gurus!

  60. BLARGH. CSS is making me f*ing crazy. I have started to sound like that old guy who’s always saying how his 1935 Ford pickup beat the pants off this new fangled technology. But the thing is – He was right! And so are you! Tables for positioning!!!! It just works. And I can tell what I’m doing!

    So don’t listen to these kids who’ve been raised to think that CSS is better for all things. It’s not.

  61. Here’s an example of what’s wrong with CSS for layouts:


    All I did was take a csszengarden layout and remove the “p” tags. That is, I removed the ‘content’. It breaks. It breaks because they are relying on the space taken up by content to force their background elements into place. This is not “separation of content and layout”. It’s just broken. Note – I didn’t touch the CSS file, I just took the ‘p’ tags out of the HTML.

    If I can break the supposed ‘gold-standard’ of CSS layout (csszengarden) by changing the content then I have to say I rest my case.

    PS – You could do this layout with tables a lot more easily and it won’t look like poop in different browsers.

    Use CSS for whatever you want. Hell, make a DIV tag inside each TD and deal with it that way. But use tables for layout and you’ll be happy (well.. happier).

  62. We have 3 web sites. The most recent website developed from the former web designer was a 2 column header footer and left menu (hacked css list) CSS layout. I have a pretty good experience whit html/css but a simple request to add a third column to this layout took me days of hacking cursing and testing and finally when it worked on a browser it will not work on another, new changes as a different image size or adding a new banner required ridiculous amount of time hacking trough the SEVEN styleshit files. I finally convinced my boss that for our site, that is constantly growing in pages and require very frequent updates css is not the way to go, too time consuming.

    Got the Ok and in 2 week I changed all the site to a 3 column table layout all the pages to php and moved menus, nav bar and side columns in include files.

    Now I started to love my job again.

    I can confirm once again CSS SUCKS!

  63. lol this page is so stupid theres nothing hard about css whatsoever. Maby you shouldn’t be doing web design if you havnt got a grasp of basic css yet..

  64. As someone rightly said above the web is supposed to be an accessible medium to all. I had no problem learning PHP, I learnt HTML in about 5 minutes but I HATE CSS.

    The best excuse I have heard for championing CSS in favour of tables is that it is supposedly less confusing for a screenreader than tables. But it is still a lame argument!

    The solution to having screen readers choke on tables is

    1. To have two kinds of tables: (i)layout tables and (ii)explicit tables for tabular info.


    2. Develop markup that enables designers to tells screen-readers and other devices the sequence in which cell contents in layout tables should be read, a bit like tabindex does already for links and forms. Easy!

    CSS Sucks!

  65. You could try to put the two columns into a single container div and then set one to float right, the other to float left.

    If you specify the div’s width, you can then divide the two columns into the exact widths you want.

    Relative position on the ‘expanding’ column might achieve the word wrap effect you want.


  66. IE5 and mac positioning styles must be absolute. This sucks when you want a website center aligned. Can anyone give me a link to an example that uses css and xhtml that is properly centered on a mac? Otherwise I guess I will make all of my websites left aligned or just go back to tables.

    BTW – How can floating an object be good. I was always taught that using x and y coordinates is very incompatible across browsers. I’m just confused on why this is considered the new standard but it is very incompatable among browsers and can take hours to layout a simple website. I just can’t see the advantages to this.

  67. Just look at the veritable *industry* that CSS has created in ways to achieve 3 column layout with columns of equal height! What a frigging riot!

    The one thing that everybody wants to do with layout – CSS makes into a ridiculous Herculean effort- and most of the solutions – maybe all of them, have all kinds of bugs, hacks and restrictions!


    It makes the goal farther away than ever before!

  68. I’m glad that I’m not the only one who thinks CSS sucks.

    I’ve had no instruction in learning HTML, everything I learned was taught myself by reading tutorials and experimenting with putting together my own site.

    Over the last week, I’ve spent countless hours trying to take my table based layout and making it in CSS – all because I heard the call of the CSS purists: “Tables weren’t meant for layout!”

    I realized I was in trouble when the “tutorial” I was reading declared that I need a browser other then IE to test my work. Then came the endless amount of hacks, and tweaks which started popping up in the code.

    After much frustration, I googled “CSS layouts suck” and wound up here.

    I think the CSS “purists” have it backwards. CSS is not meant for layouts. The only thing CSS is good for is styling text.

  69. Columns, by definition, are a feature of TABLES (except building columns of course :)). Why do CSS purist try so hard to avoid using tables to do a 3 column layout; THE VERY THING A TABLE IS INTENDED TO DO. They often say “Tables should only be used for tabular data”. To that I say: “If you are trying to achieve a 3 coloumn layout, are you not trying to format your page in a TABULAR way??”

    CSS junkies want to achieve everything tables can do without actually using a table.

    Add to that the fact that no one knows what the future may hold. Microsoft seems to have no intention of honoring W3C web standards anytime soon. Many of the hacks that CSS fanatics have used to make their websites work may not work with future versions of I.E or even firefox. What good is *valid*, *semantic*, tableless code if the end user has trouble viewing it?

    Check out this list of some very popular websites that still use tables for layout: http://web2.0flow.com/top-30-popular-websites-that-still-are-using-tables-as-main-layout-structure/

  70. We are now halfway through the year 2008. So, oh grand consortium and CSS purists, when WILL CSS actually be able to successfully and predictably emulate table layouts? >:D

    After wasting more of my life on this crap than I care to admit, I have come to a simple solution:

    1) CSS is for style, NOT structure

    2) Tables are for rendering layouts predictably across browsers (even the evil IE).

    Any CSS Purists who say I’m wrong, I got three words for your:

    Full. Height. Divs.

    I DARE you to show me code for two and three column layouts using pure CSS that does not involve browser hacks AND that renders across all modern browsers predictably. Post that code right here where it can be tested.

    Anyone who wants a chuckle (and hasn’t seen this already), just Google the phrase “full height divs” and watch the hilarity ensue. Actually, after a while, it’s rather painful to watch.

    One other thing…

    Who the hell said that using tables means your code won’t validate? Badly formed statements (i.e., forgetting to close your tags) or using deprecated tags get you into trouble. And I’ve seen more so-called pure CSS websites get into validation trouble, especially with complicated layouts, than those that use a simple table when a simple table will do the job.

    Right now, I’m working on a “pure” design that is driving me BATTY because I need my divs to hit “ceiling-to-floor” (100% height), and I cannot find one straightforward CSS non-hack-a-palooza method that is as simple as a two-column table.

    If you have the link or actual code for this miracle, pure-CSS solution that works cross-browser without a bunch of crazy hacks, please post it! Because I haven’t found one.

  71. Hate that CSS – What makes me laugh here is that the CSS supporters don’t seem to be aware that they are investing huge amounts of time hacking their own CSS to make it (maybe) work – isnt that a step backwards? Surely web design should be easier here in 2008?

    Personally I have better things to do than waste my life in front a computer wrestling with a redundant concept such as CSS – Gimme tables and half an hour and I’ll give you a web page that looks good, works good, rock solid, and damned easy to change.

    Meanwhile you’ll find me on the beach laffing at the dudes still hacking away at their CSS.

    As my C++ teacher always told me – if you have to hack something to make it work, then you are already in deep trouble…

  72. Glad I came along this site. I also fell for the lie that you shouldn’t use tables for the lay-out.’

    I’m a experienced webbuilder (over 10 years in the business) and work with HTML, Javascript, PHP and MySql every single day.

    After one full day trying to create a simple 3-col layout I searched for “CSS sucks” out of pure frustration and found this site.

    Glad I did, because it saved me day, maybe weeks of frustration. Back to the ol’ table lay-outs.ate a 1 minute-table

  73. My advice is start basic, have a development tool that gives you a result with a single click. gradually elaborate your design step by step. If it the result is not what you expect, go back, understand why; it’s tedious, it’s boring, but that is the nature of coding! CSS is very very, very far from perfect but it’s probably the most far-sited layout pardine we have, and its free.

  74. I ran into this interesting blog after googling… yes, you guessed it. I’ll join in the rant: css is good for styling, not for layout. A whole day of trying, checking, debugging, applying hacks etc. still won’t yield the result I’ve designed in one hour working in photoshop. How am I going let my customers pay for this amount of work?

  75. I check back here periodically out of interest (I posted my opinions a while ago; search above for my name).

    An interesting point: Go to a few “big player” sites — microsoft.com, borland.com, adobe.com (those are three I just pulled down on my end). View source, and then find and open their primary CSS file.

    The amount of CSS in there to accomplish fairly simplistic layouts is just insane (ridiculous, absurd, call it what you will!)

    Now, to all of the people here bashing, “oh just learn CSS”, get over yourselves. I didn’t say the CSS was *difficult*, per se. It’s just excessive and not the least bit intuitive in most cases…

    Negative positions and margins, all sorts of floats and clears, three and four-level deep ul ul li li’s just to move a few elements into position, deeply-nested divs, not to mention gobs of /*// !important etc. hacks, tweaks, etc. to “fix” browsers.

    It’s like these sites feel obligated to “look modern”, so they pay some poor schlub web guy to sit there for god knows how long cranking out mounds of CSS which — in the end — isn’t 100% consistent across browsers anyway.

    Instead of these big players trying to look modern with their horrid CSS, perhaps they should look smart, step off the “everybody else” path, and go back to what works (a) better, (b) faster, and (c) with less effort.

    Every now and then, I tell myself, “maybe your next site should be table-free.” Then, I get into it, and common sense slaps me in the face, and I go back to what works.

  76. I check back here periodically out of interest (I posted my opinions a while ago; search above for my name).

    An interesting point: Go to a few “big player” sites — microsoft.com, borland.com, adobe.com (those are three I just pulled down on my end). View source, and then find and open their primary CSS file.

    The amount of CSS in there to accomplish fairly simplistic layouts is just insane (ridiculous, absurd, call it what you will!)

    Now, to all of the people here bashing, “oh just learn CSS”, get over yourselves. I didn’t say the CSS was *difficult*, per se. It’s just excessive and not the least bit intuitive in most cases…

    Negative positions and margins, all sorts of floats and clears, three and four-level deep ul ul li li’s just to move a few elements into position, deeply-nested divs, not to mention gobs of /*// !important etc. hacks, tweaks, etc. to “fix” browsers.

    It’s like these sites feel obligated to “look modern”, so they pay some poor schlub web guy to sit there for god knows how long cranking out mounds of CSS which — in the end — isn’t 100% consistent across browsers anyway.

    Instead of these big players trying to look modern with their horrid CSS, perhaps they should look smart, step off the “everybody else” path, and go back to what works (a) better, (b) faster, and (c) with less effort.

    Every now and then, I tell myself, “maybe your next site should be table-free.” Then, I get into it, and common sense slaps me in the face, and I go back to what works.

  77. PS: There was an example posted above by a guy who took all of the content out of a pure CSS page, and completely broke the layout. I think that makes a great statement:

    Separating content from presentation is only beneficial when your site’s “correctness” is content dependent!

    If changing your content requires that you go back and “re-hack” your CSS, this is no benefit whatsoever.

    Think about it…

  78. This thread started April 2005 and this post is written November 2008.

    It has been over 2 1/2 years for this thread and CSS for layout still sucks. I have designed websites for only 7 years and have beat myself up because I used tables for layout until 3 weeks ago. The last few weeks have been spent creating a site layout in CSS that could have been handled by tables in 3 days.

    Let me hear you freaking CSS zealots at Starbucks in the morning putting down tables for layout and I’ll shove your notebook up your pompous ass.

    Somebody owes me 3 weeks and I won’t my money back.

    F*** CSS for positioning.

    Ya’ll have a good day.

  79. I like some aspects of CSS, but sometimes it is a load of shite. Using percentages in widths just causes loads of trouble because it doesn’t take into account the padding/border widths of the containing element, vertical align just does not work and there’s no way to tell an element to size itself up to, say, the right side of it’s container.

    All of the ‘CSS showcase’ sites I’ve seen have pretty basic layouts. Anything more advanced and you’re struggling. I wanted some text to flow around the outside of a div today and eventually had to do yet another nasty workaround.

    It’s a real shame, but all of the sites I’ve looked at that have made me go ‘wow’ have been flash based. Sad but true.

  80. I’m at three months and counting trying to fight CSS on a single page – somewhere around 60 hours and this crap still doesn’t work. I’m a designer and, although I do read and write code, CSS just baffles me. I’m so over it, thinking of getting out of web design altogether. I do it because I want to design not beat my head against a nail-filled wall.

    It’s kinda funny cuz I see these great CSS table-less sites where someone thinks they know what they’re doing but there’s text overlapping and all sorts of mistakes all over the place. CSS is breaking the Internet

  81. Having spent most of my time recently working with WPF (Windows Presentation Foundation), switching to a web app is PAINFUL! WPF has tons of groovy “panels” which make layout (and changes to layout) a dream. I started my site with tables (since I _am_ familiar with basic HTML) and then ran across the “css gospel” on the web.

    Hey, cool, maybe I can get around some of those irritating problems I’m having with tables.

    Nope. No chance. Although I may be an HTML/CSS n00b, I’ve been programming professionally for over 20 years. I know crappy technology when I see it, and CSS is crappy technology. To be kind, I guess I could say that some are trying to use it for things for which it wasn’t intended.

    But it’s back to tables for me. I just don’t need that kind of agony. It’s like going back to to assembly language programming … and yeah, I’ve done that too.

  82. I wish I had found this site earlier. As some other posters wrote, a search engine is the best tool at your disposition for solving CSS-related problems. Having struggling with the full-length div problem for one hour, I found this page and learned that it was impossible to achieve this effect without hacks :-( Now I have to redo my whole website with tables to get a sane layout.

    An obvious flaw with CSS is that it does not provide table-based layout semantics, which is the most intuitive tool for the job. With CSS 2 you can’t position two non-inline boxes horizontally without relying on floats!

    The fact that Zen Garden breaks with content changes is testament to the brittle nature of CSS. The quality of the argumentation made by the pro-CSS advocates in this thread is also telling.

  83. There is no “…and if you need to be cross-browser compatible”. You better damn well ALWAYS be cross browser compatible. CSS can’t do it out of the box in terms of layout. You almost always have to resort to conditional hackery, IE spoofing, etc… CSS is just flat out implemented differently in every browser(it really doen’s matter if W3C sucks or Microsoft sucks, the reality is, what they release is what we have to deal with) and your web site HAS to be compatible with all browsers. CSS is for styling, not layout, it’s that simple.

  84. I must admit that I like CSS for some things, the things it was meant for, which are reflected in the name, cascading STYLE sheets. Style is not and never will be layout. Classes are awesome and really display the power of CSS. But like XML fanboys, the CSS group has a hammer and declare everything a nail.

    Most CSS layout websites are junk. One div obscures another, they render differently in one browser than another, or they dont fully display because some hack is not working properly. Like so many things these days, CSS markup has become a religion with fanatics attacking the infidels at all costs.

    Any developer under me who wastes an entire day/week trying to get a 3 column display to render in CSS will not have to bother coming into work the next day. There is a reason tables are used by the vast majority of developers. It is because they are fast, inutitive and consistant. If used properly, site redesigns (which whould be infrequent anyway) with tables are trivial.

  85. It feels awkward writing this in Q2 of 2009, but what the hell.

    I guess all you who bitch about CSS saw the CSS Zen Garden – where you change the layout/style completely without even touching the markup.

    I leave it up to your imagination, what power that gives you. If you don’t get it, don’t use it.

    3 column fixed/liquid layouts, sticky footers, and all this _impossible_ to achieve layouts, is ca. 6 hours work for a experienced CSS developer. No matter what.

    Oh, and what I assume reading some of above comments, CSS haters are not bothered by the terms of accessibility, printing, screen readers, disabled styling.

    Another thing is, each time I had to maintain an old, table based page, I didn’t see the simplicity you are talking about. The markup was _killing_ me. Nested tables, 5 levels deep… god!

    Plus, try to find a job somewhere these days as GUI engineer, claiming CSS sucks. Good luck.

    People acclaimed CSS for a reason.

    Once again: if you don’t get it, just leave it alone, in peace, use your tables for layouts, and be happy, just like CSS developers are.

  86. Fuck the W3C. The CSS zen garden can kiss my black ass.

    The fact that CSS has display:tables; and 9 other display like a TABLE settings, means that CSS is tables’s bitch. CSS you’ve been pwned by Tables.

  87. @Marek Stasikowski

    That’s is exactly the problem we “CSS haters” are talking about.

    Why for good sake to make a simple CSS web page someone have to be a GUI engineer “whatever it means” to make a fucking 3 column layout, doesn’t look strange from an “Engineering” point of view? The web is not a house that can collapse if not built with proper materials and engineering principle.

    Oh but wait.. you are a GUI engineer..so you need 6 hours to make your CSS 3 column layout…..wow what a piece of work.

    We simple stupid mortals are using tables, guess what? It takes 2 minutes, no matter what. The result? The same, but I can go at the beach, you still have 5hr.58 minutes to finish your CSS masterpiece.

    Hail to the Engineers!

  88. @ Marek Stasikowski


    “if you don’t get it, just leave it alone, in peace, use your tables for layouts, and be happy, just like CSS developers are.”

    We get it don’t worry, that’s why we use CSS for styling not for layout. I am sure you get it too as well as all the Zeldman’s adepts and CSS Kool Aiders out there. The truth is: you are protecting and advocating so hard CSS layout because doing so it means also protecting your present job as a “CSS guru” or “GUI engineer” or “Usability Architect”, [ or enter a new cool job description here].

    All this fuss and bullshit about CSS Zen, liquid layouts…please, what a waste of productive time. You understand that nobody give a shit about your “Usable standard CSS layouts”? The problem is that you all big CSS experts are crusading against tables, but tables are there to stay that you like or not. Sooner or later your customers or employer will smarten up “especially now in this bad economy times” and

    realize what a waste of time and money you “GUI Engineers” and “Usability Specialist” are, and decide to hire someone that actually work, cost them half of what they pay you and get the same job done faster. Now that money is an issue for everybody, people will start to see more clearly where is the beef and where is the bullshit.

    Bye bye CSS gurus, nobody will miss you!

  89. Wow, is this ever comical! I found this by searching “divs suck.”

    After four years, you would think CSS “gurus” reading this thread would have wised up by now. But NOOOOOO! You guys spend way too much time with your head in *ahem!*, well okay, I’ll be nice, you spend too much time thinking in code, and not enough time thinking like a user. Users don’t give a rats ass if we use tables or divs. What they do notice though, is crappy layouts.

    CSS and divs requires driving to Seattle to get from New York to Miami. It’s just plain stupid.

    Before another one of you pipes in here to “show us all how easy it is,” you really ought to go back through this thread and look at every example of other who have tried the same. In virtually every case so far, another user has shown the “simple solution,” doesn’t work!

    You guys are a great example of what I refer to as “code heads,” who think they live in a world where anyone who doesn’t “speak the language” is beneath them.

    Well, your SITE USERS don’t speak the language, and frankly just don’t care. The problem with approaching site design from a “coding” standpoint is that all it takes into account is what you guys need to do to maintain the site. It doesn’t take into account what users are going to do with it. User do the unexpected. They don’t follow the “path” you set out for them. They’re going to do things with your sites that you never intended them to do, no matter how much fancy coding you’ve put into it. Any idea how frustrating it is to here when a user say, “Hey, when I do this with your site/program, weird stuff happens, and your answer is, “Oh, well, you’re not supposed to do that!!” ?

    That’s what I call poor designing. The simple fact is, divs and CSS are NOT conducive to simple, easy to design and use layouts. PERIOD!

    Let’s all try and remember that, way back before CSS was even concieved, the internet, and website design was INTENTIONALLY made so that ANYONE could do it. I admit that in many ways that intention opened a virtual Pandora’s box of problems no one could foresee, but the fact remains, that was, and STILL IS the spirit of the Web. Those of us who have discovered that YOU DO NOT HAVE TO BE A CODING GURU to design and maintain a website, are going to continue to insist that we have the RIGHT to continue to do so.

    Trust me, there are a LOT more of us than there are of you, and by virtue of that fact, the Web is highly likely to remain accessible to us all from a design standpoint.

    Lest some of you think I have a problem with “gurus,” the truth is, I don’t usually. You guys serve a very important service to those of us who do not have a clue how to write code (other than design code), but do have a very clear idea of how a web site should look and work FROM A USERS POINT OF VIEW!

    We NEED you guys to make the back end work, and I, for one appreciate what you do. Unfortunately, there are just enough really good coders who THINK they are good designers to make life for us miserable. Designing and coding are two different worlds.

    Web sites should be designed from the outside in, not from the code out. What it looks like, and how it works from the users POV should always come first. Your job is to make it work that way.

    Layout is a design feature, and as such, SHOULD be as simple as possible to create.

    CSS is NOT simple when compared to tables, and simply ISN’T necessary.

    BTW: Thanks to all CSS proponents who HAVE stepped in to say, “Use whatever works best.” Most of you have, and I thank you for your sensibility.

    Those of you who think we should all go back to our “knitting,” are just being pig headed.

    We’re not going anywhere, so just get used to it!

    It’s OUR web too, by gosh!

  90. You fools just need to learn CSS, it’s not that hard. Just look at google’s pages, there are no tables in use there and they seem to do just fine. Also, deeply nested divs are clearly superior to deeply nested tables.

    Writing some javascript, avoiding parts of CSS that just aren’t implemented and positioning additional divs off in space to fix things for something like 45% of the Internet isn’t a big deal.

    Did I mention that I am Donald Duck? Also, I can fly into space using just my mind.

  91. *yawn*

    It’s almost HALF-PAST 2009, CSS Fanboys…

    And CSS alone STILL cannot predictably create layouts cross-browser.

    And I’ve YET to see a CSS layout that handles truly complex information without five layers of DIVs and/or a browser-sniffing hack fest.

    Scream all you want about us who see CSS for what it is… call us dumb, fools, etc….

    All you do is chant your party mantra without any real facts (or complex sites) to back it up.

    Go ahead, oh you gurus… show me ONE truly complex pure CSS site that isn’t splatted, slashed, or otherwise punctuated with ridiculous cross-browser hacks or javascript to force it to do what tables can do in semantic (yes, gasp, tables ARE allowed by the W3C) and easily legible ways that will survive whereas the next uber kewl CSS feature will probably blow up.

    Hey, since I’ve given up on trying to force CSS to be something it’s not, I can actually finish my work and have time to be entertained by all the CSS worshipers trying desperately to make it work… of course on other sites, as none of them would dare to confirm what we already know here. >:-D.

  92. The other day I was laying out out a very simple site with CSS. Even on this site I had to use hacks. Worse yet old browsers may not display it correctly and since I don’t have a copy of IE5 & 6 on my system I have no way to know for sure.

    I have come to the conclusion that using CSS for page layout is unprofessional.

  93. @mrgeetar





    If you’re gonna claim it’s that easy then where’s your example?

    [quote]Put both columns inside a div set to width: 100%.

    For the right column, just specify float: right and specify a width in pixels. Your left-side column will expand to fit whatever’s left. Add your header div above those two and your footer below and you’re set.[/quote]

    You’ll need margins too…which will vary from browser to browser, and then you might need to put the markup for the right-hand column in the source before the left-hand column etc. etc. etc.

    Since it’s so easy, make me a two row display where one row is a fixed height and the other takes up the remaining space of a 100% viewport…

    CSS makes creating basic layouts much harder than it needs to be, it’s just no good for the real world ™!

  94. Man, CSS sucks… i fight with my programmer friends all the time. They rant on how great css is for designing websites but when they show me theirs, their sites are all off center, non-compatible w/ other browsers and just-plain-UGLY!!!! My clients marvel over my table based layouts… it allows me to really get the look and feel of the site down.

    CSS just sucks when it comes to layout. I don’t care what anyone says… SHOW ME A CSS BASED LAYOUT THAT LOOKS GOOD AND IS BROWER COMPATIBLE. There isn’t one!!!!!!!!

    I’m sticking with tables… even after 4 years of this post running, the majority of us feel the same way.

  95. YESSSS, I’m agree !

    It is impossible to design a web site with CSS.

    CSS was a really out of space “decision” on how to design web site.

    If CSS was so good and easy, why DTP designers working on Xpress or Indesign are not using CSS tags if it is so easy and so simple to use ?

    Because about 98% of CSS is crap !

  96. This is a great thread. I have been writing code professionally for 20 years but am pretty new to web development. Before I started, I imagined creating a CSS column layout would take me a couple of hours at most. After two days of fiddling around with the CSS properties, I managed to get it 90% right but was never completely satisfied with the layout and spacing. Trying to adjust it was like nailing jelly to tree. When I fixed one part, another part slipped in the wrong direction.

    The html / CSS book I bought said tables were not recommended for this task. Fortunately, I stumbled on this site while searching for a solution to my problems. After reading these comments, I ripped out my CSS and created a table and it worked on the first try!

    Sometimes the right answer is not the “correct” answer. Purists be damned!

  97. I’ve been coding since time immemorial, and used to do whole layouts with tables.

    I do code now using strict XHTML. But man. CSS is a bitch, period.

    Even trying to get a simple layout to work is not intuitive at ALL.

    I don’t know who these people are that came up with this CSS crap but they obviously didn’t talk to the XHTML guys.

    I LOVE XHTML. I like the IDEA of having your graphics and layout in a separate file, but the implementation is just purely fucking retarded.

  98. I have been working with comps since the beginning of time. I now concentrate on web-apps. And to everyone out there: CSS SUCKS SHIT THROUGH A STRAW.

    Why is it still around? Web speeds mean we dont give a shit if content arrives before style. And those websites that take ages to load are shite anyway – late arriving style doesnt improve them! (and its usually some soddin flash crap slowing it all down anyways).

    What self-serving butt sucking t/n-erds keep pushing css. LET IT DIE. There are better ideas around that need encouraging…


  99. “CSS sucks” is just a tip of the iceberg. The entire HTML/XML standard is just a big pile of crap. If you ever tried to write a parser for HTML/XML you will know why. It is IMPOSSIBLE to validate HTML/XML code 100%. Even W3C can’t do it for their own sites. It is IMPOSSIBLE to catch and correct all the errors out there. And there tons of them. You just hope it works 80% of the time.

    And it doesn’t make sense that there are errors at all. The entire syntax of HTML/XML/CSS is just plain horrible. I call it “the broken box model”. It is amazing it works at all.


  100. lol@ all the idiots on this post. If you can’t use CSS maybe you shouldn’t be in the web design business? Everyones using it now so u better get used to it or just quit.. ;)

  101. Simply, CSS is for programmers. I’m a graphic designer that kicked tables round for years and every time I needed a solution it was a quick web search and there we go. But the limits on tables are obvious. Some thing new was needed.

    CSS is for programmers only. (yes, FULL STOP)

    Exactly how many sites are there about hacks for tables to get them to work. I know people get high any mighty about CSS being the worlds final solution to web design, but they are programmers who normally know how to programme.

    Exactly who will pay me to sit around for the last two weeks of fighting with CSS to get it working. Oh there are many MANY different solutions (none of which are 100%)

    You have to understand, programmers are used to debugging code. So CSS issues for them are great fun to solve. Well, merhaps’ fun isn’t the right word but you get the idea.

    CSS has left the graphic designers behind and waded into a browser war with little regret. Well look at that CSS2, no there are no issues in CSS1 to fix, just add new features and change a few things so that we have to learn all over again.

    CSS is like chemistry, more exceptions to the rules than there are actual rules. And ask people about why doe it work that way and you get one of two answers: “That’s just the way it works, learn it” or an answer that only programmers understand because it has so many work arounds it’s spaghetti code.

    Finally, it’s all about productivity. No, I believe in tiny and efficient web sites, but exactly how much of my time must I pay to get it right with CSS. “CASH” people, money, you know, as in your time. A few repeating backgrounds and some columns that match. Quick and easy design, when they drafted CSS did any one other than uber programmers/graphic designers have a say on what we need. “So, leave those stupid people behind, we the gods of the web will be able to handle the issues” Uhhh ha.

    Tables aren’t the solution. Make no mistake, CSS isn’t the true answer ether.

    Keep telling me how wrong I am. Keep pointing me to hacks or javascrips or complex examples to solve my issues. Just admit it. CSS is very flawed as a standard (blame the browsers if you want) but ADMIT IT!

    I’m heading off to my Notepad++ to keep trying to fix that Drupal theme so nicely formatted with CSS. Don’t worry, the very poor African church that I’m doing the work for will understand why I’m taking so long. Yes I’m not a programmer. But if I was, I’d be embarrassed to be associated with such a shoddy development environment as CSS.

  102. @Time: The only “idiots” I see are those who spend days struggling to get a layout to look right with pure CSS when it could’ve easily been done with a combo of CSS and tables in under an hour.

    Or maybe I’m wrong. Maybe people like you are “brilliant” in that you all cooked up this whole CSS tableless design thing as just a clever way to scam clients out of paying you more money than necessary. Makes sense to me. A layout with a table that looks exactly the same across all browsers without any of those annoying alignment issues can be done in minutes. It’s so easy to do that even clients can do it.

    But if you start pushing a more convoluted, ass-backwards, frustrating system of building a web site as a *standard*, you can impress clients with your “mastery” of this system and charge them more money for the privilege.

    So I stand corrected! We really *are* all idiots here! If only we’d master tableless design! Then we could start charging double the rates!

  103. Yes, CSS sucks. Something that takes two minutes to do using tables, takes ages using CSS.

    I think that’s why people are running back to tables in masses.

  104. The IDEA of CSS is great – separate style from content. The IMPLEMENTATION of CSS is horrible. It takes hours to do the simplest things. I don’t think we need to go back to tables, but the current implementation of CSS is not the answer either. A better solution needs to be invented.

  105. CSS / Tables etc, are all just tools, the end result is all that is important. I just use whichever tool gets me there quickest and easiest, so I generally end up with a mix of CSS and Tables. CSS generally to style the layout and Tables to create the layout, for me that works.

    Don’t even get me started on the “we hate IE6” crowd of developers. I build sites for clients, quite a few of their customers use IE6, so I build the sites to work in IE6, or they lose customers, simple.

  106. CSS = Crap Sucky Shite.

    Its a perfect example of “designed by comity”.

    A few good ideas, lots of time-wasting shite, and brown-noses choosing whats best.

    John Nagel had it right when he said we should be able to tie corners/sides of boxes… simple, clean, effective.

  107. Thank The Lord For This Page!!

    I was just giving up hope, and out of pure frustration I typed

    “CSS sucks” and I found you guys. Now I can breathe again!

    The problem is that everybody wants to start a Revolution, or at least

    take part in one. As soon as a technology has proven itself, it is a

    candidate for dropping/depreciating it. People are terrified of being

    called “old”.

    I think in the end it’s all about properly marking up your content.

    So, if your boss feels old and wants to compensate by adopting “new”

    technology, you just re-code your tables to:

    Ain’t nothing before me but Thang

  108. Ok, XMP did not work. One more try:

    [div class=”table”]

    [div class=”tr”]

    [div class=”td”]

    Ain’t nothing before me but Thang




  109. I totally agree that CSS sucks.

    I have a training as a “general-purpose” programmer and I’ve been used to having my programs just do what they’re supposed to do (though it often involves some debugging to get it right).

    CSS is so non-intuitive. You just can’t predict nothing.

    And this is so frustrating. You shouldn’t have to read the whole specs of a language before you can start to use it. Well, for aircraft software I would understand, but not for web design, which I think should be made simple.

  110. I am a polytechnic guaduate in Singapore and am looking to get my degree in Japan. I am truely impressed by their creativeness and culture of that country and believe it would be beneficial for me to advance my studies there. I am looking for design and art degree programme which would be recognised internationally as I plan to return back home to work. I plan to work in the creative industry (most probably advertising) later on. I have been bowsing through some web sites and even approached the Japanese Association in Singapore with little success of finding what I want. . I am looking for a place which teaches fine arts, design and advertising related subjects. Please help me : ) I truely do value your answers.

  111. What are the schools with the best curriculum in web design and development? The best one that I found that had both is Full Sail in Orlando. . . Please don’t answer by saying it is best to learn by practice or interning, because it is irrelevant to the question. Thanks in advance..

  112. can you hear the laughing from up high?

    css sucks dogs bollocks, and EVERYONE with a brain / with experience / with minimal education KNOWS IT.

    seperating style from content ??????!!!! This has to be the most fucked up idea EVER.

    Did you ever see a newspaper or magazine written in one font, one column, and a footnote saying Style and bold headings delivered seperately.

    css suporters dont make REAL websites.

  113. hahahaha. I just had to tell this…

    In the company i’m working in, the web-designer was FIRED. And a general purpose IT geek employed.

    The marketing/design/promotions people do the eye candy. The IT Boy talks about what links to what, but not what it looks like. And then he goes away AND MAKES IT.

    He uses whatever technology he needs to make it work. And he hates css SHITE.

  114. This whole shitty discussion about CSS vs. Table is so out of common sense. There are always some people who swears for one side, other for the other. My conclusion is that the mix does the best, and it’s never good to have a strict “black or white thinking”.

    I like css, but I like tables also. In some cases tables suites much more than CSS. They are good because everything centers horizontaly and verticaly, and is width adaptable to its dynamically generated content. Everything wraps around it and adapts easily on screen width like a charm, even in very old browsers. It keeps fully liquid without TONS of CSS-Codes and HACKS needed for different browsers and webkits. For what in heavens sake should I generate DIVs with a CSS “display: table” and “table-cell” (that won’t work in lots of browsers) or build divs that will need CSS-HACKS for each browser in the web? I think that as long as designers keep styles seperated in CSS (yes, that can be done with tables also) then everything is fine. Hate that people who always swear on just on thing! It just sais to me that they are totally square minded! CSS CAN DEFINTELY SUCK A LOT!

  115. The concept of CSS is good. The implementation is heavily flawed. Especially for layout.

    The box model is dumb beyond belief. Microsoft was doing it right but they’re “evil”. Screw the rest of us because you don’t like IE!

    And, come on, any technical specification that requires !important to make something work, is just plain stupid.

  116. I hate CSS too. It just does not work for layouts. If you really want to separate content and layout / style, why not go with xml + xslt?

  117. I have been a programmer for 20 years, and I have never come across anything as humbling as CSS. I have spent the last 2 hours just trying to get a set of spans to arrange themselves horizontally within a div, instead of vertically, and I have yet to succeed. This is absolutely insane. The argument of CSS lovers seems to be, “If you learn CSS properly, it’s easy.” That may be true, but I do not have six weeks to spend on CSS classes just to do something this ridiculously simple.

  118. You guys seem to be coming from a programming background, and so do I. If anyone remembers suntools, that might give you an idea how long this discussion has been going in the computer industry. The basic idea that you want to present some content but you don’t know: whether the display device has colour at all; how big the display device might be; what font the user prefers; what fonts are even available; what size font you are working with; whether they are using an audio reader; whether it is a mobile device; etc, etc, etc.

    There’s been about 30 years of work go into this, probably more, but each generation is determined to skip the bit where they learn from the mistakes of what the last lot did.

    So you people from a programming background are expecting to see a “constructive approach”. By that I mean, you have some basic building blocks and you assemble a product by butting the blocks together. The HTML tables approach is a constructive approach; so you can build a table, and you can put a table inside another table if you like, all the way down to dust. TeX had a constructive approach.

    What you don’t recognize is that CSS is NOT a constructive approach. Instead, CSS gives you a rigid menu of options (as defined by the standards committee) and you pick what you like from the menu they give you and YOU DON’T BUILD ANYTHING AT ALL! If the thing you want is not on the menu, then TOO BAD YOU CAN’T HAVE THAT, pick something else dingbat.

    Each new version of CSS fixes the problems of the last version, not by giving you the ability to actually build anything, but by giving you a bigger menu to select from (and of course, always a heavier implementation as well).

    If you want to know how badly this approach has failed, just take a look at the number of people now recommending that the only way to do layout is to have a fixed size page. Seriously, after 30 years figuring out how to adapt layout to flow around different output device scenarios, we have finally come to the decision that the real answer is to lock the size. Bloody genius.

    Let’s all go back to writing frames for 80’s style video games, and just ship bitmaps. Give ’em what they want, leave the office on time, have a few beers after work, and enjoy your life. None of this is worth caring about…

  119. css is a fucking pain in the arse to try to get right, always hours and hours and hours of fucking fiddling with fukking shit while your life drains away on this utterly uninteresting, inert shit. At this stage if you’re working on css with all its fucking complexity and variables and mixins and scss and less and every other ridiculously complicating shitty pile of shit to get a few bloody words and images to look ok on the web – then stop wasting your time on this inert bollox and spend your time more usefully learning to program outright, at least then you’ll be able to do interesting things with data. CSS makes you spend DAYS fiddling with fukking shit and for what? To make a bloody picture and a few words look like this rather than that. What a waste of fukking time.

  120. It’s 2021 and your rant is still 100% right on. CSS positioning rules have always been defined by lizard aliens with inside-out brains. Nothing is the way that any human would think. Even flexbox/grid is a fiasco. You say you want your element to be centered at position x, y relative to your parent, but want it to fit the content of whatever is in it? Well you have to be a master of overflows, positioning types, negative margins, line heights, and probably a bunch of other stuff I don’t know about because I’m not there yet. Something I could write in a sensible language like C in about 45 seconds using exotic techniques like…ooh ADDITION or SUBTRACTION, maybe multiplying even. No, much easier to memorize all of the arbitrary and unintuitive effects of floating and auto margins and inline-block, and absolute positioning that’s never what you thought it would be unless your parent is declared “relative”. Simple!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.