Regarding the use of semantic markup and avoiding presentational class
names:
If you're building a small site with just a few pages or a site that's
not going to require daily maintenance and/or team collaboration, then
adhering to semantic markup is just a way to geek out and show that
you can adhere to best practices to prove you can do it when it
matters.
But speaking from experience, using a grid framework like blueprint,
960, bluetrip, etc really falls apart when you get into any product of
sufficient complexity. Here's some of the problems I encountered
working on version 1.0 of
caring.com which was built on blueprint:
Using grids within partials makes them less reusable
Using grids within your templates limits your layout choices to only
those layouts designed to work with specific grid widths.
Blueprint specific: Gets into my div.last class which I like to use
for non-grid uses.
Requires the use of extra markup because the grids only apply to div
elements or because you've built a flexible partial and need to
constrain it to a grid.
Alternate stylesheets and theming are constrained to just changing
colors, fonts, etc. They can't really get into the layout of the page.
My solution to this was different from most. Instead of stopping to
use these frameworks, I ported them to Sass and implemented all of
their classes as Sass mixins. This evolved into the compass framework:
http://compass-style.org/ With it, you can quickly apply grid styles
to your semantic markup.
To the point that grids aren't that complicated and you can reproduce
it:
Sure, you might have grids memorized and can write the CSS by heart. I
don't know that most can, but it's not really that complicated once
you know the strategy. In just a few minutes, you can probably
reproduce it from first principles and get it working in your primary
browser. But here's the thing: browsers are evolving and the grid
frameworks should be in charge of working out the browser support
issues. When IE9 is released maybe it will break things, upgrading
your grid framework instead of running around finding all of the
broken css, is going to be a time saver.
Programmers have realized for a long time that creating abstractions
and building on those abstractions is a huge time saver for both the
initial implementation as well as the long term maintenance. Grid
frameworks give you abstractions that more closely match how you are
thinking. Also they make some choices for you and liberate you from
having to decide on the nitty gritty details -- if you've bought into
rails, then you've bought into the philosophy whether you know it or
not.
Also it's easier to understand original intent when you use
abstractions. I would argue that (I'm going to slip into some sass
here so I don't have to mix html and css):
#sidebar
+column(5)
+append(1)
is easier to understand and maintain than:
#sidebar
float: left
width: 190px
margin-right: 10px
padding-right: 40px
Though I wouldn't argue that it's easier to debug. But again, that
shouldn't be your job -- that's the job of the framework maintainer.
It's your job to report bugs :-)
-Chris