I've begun to realise that while CSS is quite good at some things, it's also really horribly bad at doing others. I'm going to use as evidence the number of websites that have sprung up to offer tips about using HTML and CSS properly—people like A List Apart
, Eric Meyer
, and the site that kicked off this thought, The Man In Blue
. All of these are very good sites, and always very informative, but some of the techniques they advocate are a bit strange. They usually rely on using bugs in some browsers that don't exist in others to create workarounds for problems.
In a recent post
, The Man In Blue describes a way to get HTML forms to line up properly and look semi-decent using CSS. This is something that is dead simple to do using tables, but we're not supposed to use those for layout any more. I agree for the most part, but every time I have to do a form that's more than just a text box and a submit field, I end up putting it in a table as it's the quickest and easiest way to make it look decent. It can usually be argued that it is tabular data, it's just that most of it is provided by the user. And it's not just forms—these websites also advocate the use of mad hacks
in order to get round broken CSS implementations in browsers, and sometimes of dispensing with tables even for things that should be in tables. Argh! I'm glad I don't have to do this kind of thing full time. I think my opinion on CSS is best described by the phrase "It's better than the alternative", as Cory Doctorow and the EFF are fond of saying. It's still not particularly nice though.