Things tables do better than CSS

There are certain things that CSS does not do as well as table layouts.

For instance, say you have a black side nav bar that you want to extend the whole height of your content. With a table layout, this is a piece of cake: just give that <td> a black background.

We can do this with CSS, but it requires a different way of thinking.

If we give our nav div a black background, the black will only extend until the nav 'runs out'. On most pages, the content is longer than the navigation, so this is no good.

Instead we could tile a black GIF in our content div and give this div enough left padding, but if our navigation is longer than our content, this won't work either.

Another way to tackle it is to tile the black GIF on the background of our <body> , which is fine unless you want to use another image for the background of your <body>.

Or, we can wrap our content in a 'wrapper' div and tile the image in that div . However, this is adding non-semantic fluff to our markup.

And, of course tiling background images won't work at all if you want the width of your navigation to be fluid.

Like we said, there are things tables do better than CSS. But in the end you need to ask yourself if all the baggage that comes with using tables for layout instead of data is worth it.