Why CSS Sucks

There are many reasons CSS sucks, but here are the main two:

  • CSS relies on hierarchy for positioning, visibility & property inheritance. Therefore, it cannot be separated from the markup & interaction like some HTML purists suggest.
  • When positioning elements, one of two options can be used:
    • In the flow, which means automatic height & collection of inline assets into blocks, but very hard to tweak the default decisions.
    • Out of the flow, which more or less forces use of fixed dimensions for anything positioned this way.

If you still think CSS is awesome, try this: In a large text box, position a fixed-dimension image at the bottom-right, such that text will wrap around it.

I hope to further look into the workings of CSS in future posts.

Be Sociable, Share!
Posted Monday, February 11th, 2013 under Uncategorized.


  1. Justa Arnstein says:

    CSS is designed primarily to enable the separation of document content (written in HTML or a similar markup language) from document presentation, including elements such as the layout, colors, and fonts.This separation can improve content accessibility, provide more flexibility and control in the specification of presentation characteristics, enable multiple pages to share formatting, and reduce complexity and repetition in the structural content (such as by allowing for tableless web design). ‘*

    Newest posting on our own web page

  2. The fundamental trouble with CSS/HTML5 layout is that it’s a one-dimensional system. Most layout systems have at least rows, columns, and grids. CSS is a level down from that, with “float” and “clear”. Thus the “columns” problem.

    We were better off with tables. With table-based layout, you never saw text on top of other text.

  3. Mike Houston says:

    In addition to the fundamental problems that css has with regards to layout as listed previously, the interaction between HTML, CSS, and Javascript is ridiculously fragile. I can’t tell you how many frustrating hours I’ve spent because I introduced a syntax error in my javascript, a very easy thing to do, that completely hosed the css driven layout of my page. It’s not a matter of ‘learning css better’ or learning the tools as the purists would suggest. There is just a fundamental flaw in the spec and / or implementation of these technologies. Unfortunately, there isn’t any other alternative.

  4. BigJon says:

    CSS is *the* example of Designed By Committee.
    The most idiotic, moronic, dumbass ideas were not laughed out the door as they deserved.
    The biggest of which is ‘separating content from style’.
    This is, without doubt, the stupidest, most ignorant, simple-minded, blind, and allround greatest fuckup ever in the history of anything.
    In the entire history of publishing: from caveman slapping his dick against a wall, to newspapers, to movies, to tv, to magazines, to internet, to whatever, NO ONE ever said Lets squeeze next weeks news into this weeks layout. The next ‘ad’ will have the same amount of text. reuse the current page – just change the colours.
    If I ever find who was responsible for this goatse of an idea I’m going to pummel their face twice – so they can use the same bandages, separating cleanliness from necessity.
    signed: typical web designer.
    PS. nice touch, the proper-English spell check :)

  5. What I hate about CSS is that the solution to the most seemingly obvious problems invariably involve a hack – centering a div for example – oh you have to fix the width and set the left and right margins to auto – that’s so not freakin’ obvious! Why don’t you just give the div a center attribute – it’s not that difficult? It’s got to where I find that server-side coding and SQL, and thanks to some great client libraries, client side programming has become a piece of cake – the real time-waster, especially in a large multi-developer web application is the unnecessary complexity introduced by the impractical inheritance model and perversely unintuitive nature of CSS. CSS was clearly developed to deadlines in a business environment.

  6. > “In a large text box, position a fixed-dimension image at the bottom-right, such that text will wrap around it.”

    You mean like this?

  7. @Konnie

    That doesn’t work. The top of the image is always level with the top of the last line of text. Which is not what was asked. What needs to happen is something like this: http://i.imgur.com/rXKzJ0L.png

  8. A great tool if you want to build a website but hate CSS:


    (I’m one of the developers).

  9. The fundamental problem with CSS is that it is an ongoing hack job with no real foundation or structure.

    Without tables, html has no layout capability beyond the basics and CSS “attempts” to correct this with a bunch of hokey hacks. If people would stop embracing this spaghetti code garbage a real standard might be able to form.

Leave a Reply