I’m on a web development mailing list where recently someone asked about the “3 column” web page layout. He was using tables, but wanted a “better” solution, so several posts regarding CSS layout followed. Then the following arrived:
> Stop trying to be ‘right’ and just do something that works.
The implication being, go back to tables; it’s a simple page requiring a simple solution. I’ve talked about this sort of siutation before and I tend to fall into the ‘right’ camp. I often spend a long time implementing a ‘right’ solution, often more time than I should. Others I know go for the simplest solution, spending less time and less worry getting something working. It’s always a trade-off; for simple scenarios then a simple solution works, even if somehow it doesn’t feel ‘right’. For a larger project though, where you know that even though the simple solution will work, it will only be a short term solution, leading to more pain later. It’s often better to spend more time up front, architecting a ‘right’ solution, especially if you can see the benefits it will bring.
The table versus CSS layout is a perenial problem and is almost not the same argument as the ‘right’ versus ‘works’ one. Tables are easy and work in all browsers. A CSS approach is harder, much harder if you know little about CSS, but the benefits I think are worth the struggle, even for simple sites; despite the fact I often struggle with CSS esoterics, I’m a firm believer in it, which is why we have a CSS session at WebDD, along with an accessibility talk, for which CSS provides some great solutions. To me it just seems right that your page should contain content, while the layout is done with CSS. Many people would agree, but time contraints often mean this isn’t the solution taken.