The subject line is just a little bit inflammatory. The long version is, "What are the advantages and disadvantages of CSS-based layouts versus good implementations of other available technologies?

I'm not talking about CSS typography, here: I think all of us agree that CSS typographic styles solve a lot of problems.

Rather, I want to discuss all-CSS layouts that dispense of tabular elements for positioning and layout.

Meyer's The Definitive Guide  and many websites are long on CSS evangelism, citing the need for "accessibility" and "standards."

I'm not sold. Someone sell me. My thinking circa May 28, 2005 is that CSS tricks pale in flexibility and capability to what's possible with a good database design and some web application programming.

People cite the importance of of seperating "content" from "presentation." In my experience, a database provides you with a structured and consistent way to pull clean data.
 
People suggest that CSS can unleash the lost paradise of the syntactic web. IMHO, it's a lot more likely to happen with a richly associative, consistent database schema that fully describes its content. People are typically using and naming CSS1 typographic elements with presentational, rather than syntactic naming schemes.

CSS adherents argue that CSS-based layouts are more easily and consistently read by the wide variety of devices out there. I'm honestly curious: is this true? What data standard will a BlackBerry consume and render well? How about a PalmPilot? PocketPC IE? Mobile telephones? Screenreaders for the blind? Would these technologies play nicer with CSS/CSS2, or a particularized text-only or HTML-only version based on server-side server-side detection of the client?

So long as there are inconsistencies in how CSS is rendered across browsers and devices, and those inconsistencies are a PITA relative to competing methods of content delivery, its use as a supposed "standard" is blunted.

People argue that CSS can easily be re-cast into myriad different presentational forms. It seems to me that once my data is in a well-structured database, I can render it however I want: as text, as table-based HTML, as a CSS layout. And it's also possible to render the page in ways that aren't so easy to translate with typical methods that have evolved around CSS: as a PDF file, as a multipart e-mail, as dynamically-loaded data in a Flash movie.

A DB and programming gives you the power to render your data in the present and into any future presentational form.

Classes and OOP techniques can manage the complexity of rendering to multiple clients and presentational types. I have some half-baked ideas for using declarative markup to easily redesign page templates, and ASP.NET/2.0 seems to have anticipated many of the intents of my design.

I guess what I'm really asking is: given a good database schema and an ability to write web applications, what additional things will I win by spending time making CSS layouts...and what are the liabilities?

Depending on the answers I get back, I may also be making an argument for the relative priorities of up-and-coming developers. Is CSS layout truly the killer app to learn first? Or would their attention be better turned to learning structured data concepts, DB stuff, and an application layer (ASP, PHP, ASP.NET?)

Interested in the range of opinions out there. Convince me.

Thanks,
-KF