"Tables are the [lisp] lists of html"

Paul Graham:

Tables are the lists of html. The W3C doesn’t like you to use tables to do more than display tabular data because then it’s unclear what a table cell means. But this sort of ambiguity is not always an error.

Zed Shaw:

I may never do another CSS only layout again. I’m starting to wonder how … we got sucked into that crap, especially if the only way to really get a good looking layout with CSS and div tags is with mountains of stylesheets, html, and sometimes some damn javascript.

I’m not kidding about the javascript. I’ve seen people desperately trying to force their square-peg 3 column layout through the CSS round hole resort to javascript tricks to force the columns in the right spots.…

It’s not gauche to do what’s easiest and nobody’s going run you out of Designer Town (population 100) with sharpened pitchforks and blazing torches.

Insincere apologies to Zed for the bowdlerization.

Previous Post
Leave a comment


  1. Bryan Larsen

     /  January 30, 2008

    noob question: Cannot one get the best of both worlds by using “display: table-cell” and friends?

  2. Matthew King

     /  January 30, 2008

    bryan larsen:You can indeed make divs display like tables by using CSS attributes. The point of Zed’s mini-rant is that you shouldn’t have to. Why add all the overhead, why do the extra work making your CSS function in the major browsers if tables just work? HTML/CSS makes you jump through hoops to get the simple layouts that ‘most everyone wants.Tables are deprecated for layout because they’re not semantic, and they don’t separate content from presentation. Tables just display data in an orderly fashion.Graham says that Arc’s libraries use tables for just this reason. When you’re developing heuristically, you shouldn’t have to think about id and class names, and when to use one or the other.

  3. Jonathan Bartlett

     /  September 24, 2009

    But isn't that just the opposite? With div's, your element can behave any way you want it to. With tables, you are pre-determining both the HTML structure AND the way it looks. The problem with tables isn't just that it's semantically wrong, it's that it is semantically specific. A div provides exactly the amount of ambiguity Paul Graham seems to be wanting. Want it to be a table cell – go ahead! Want it to be something else – that's fine, too! But with a table cell, you're stuck with it looking and acting like a table cell, and being in specific sequence with other HTML elements in the area (tr's, table's, etc.).I've thought that CSS was the best for exploratory programming in HTML, precisely because you can play with your amorphous mass and easily turn it into something beautiful.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: