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