in reply to Why use templates?

CSS can't help factor out the "boiler-plate" text that surrounds the actual data (e.g. the word "Price:" to the left of a product price). CSS doesn't have conditionals, so I can't do things like make the price print out in red if it's less than $20. CSS can't do loops, so I can't print out the first three related products. (I could have my main program limit the list to 3, but then if that requirement changes to show 5 instead, I would have to change it in my program.) The list goes on. CSS can only change the appearance, not the actual structure of the page. In short, CSS isn't powerful enough to completely remove knowledge of the page layout from your program, but templates are.