Building the skeleton of a page can often be the first stumbling block in putting together a website. Here is a basic methodology for piecing together a one-, two-, or three-column page. The html works for both fixed and fluid layouts, and is structured in a way that makes it easy for html non-experts to begin building their sites. For more complex layouts, try The 960 Grid System or 960.gs.
Fixed page grid css | Fluid page grid css
#hd.page-head, #bd.page-body, #ft.page-foot
I begin the structure of a page with a really basic layout. The #hd div usually contains the global nav, the #bd contains the meat of the page, the #ft is for the usual contact and copyright links.
Why the id and the class? Extra css hooks give us options if there's ever need to skin the page
lyt-1col, lyt-2col-a, lyt-2col-b, lyt-2col-c, lyt-3col
The column wrapper determines the number and width of each column. The classname is the second class on #bd.
Why are there 3 versions of the 2-column layout? Many sites have multiple variations of a 2-column page; the homepage might have a wide left and narrow right, while the sub-pages might be narrow left and wide right. Another option for structuring the CSS is to have one class lyt-2col and to modify that class with a second one that determines the column widths.
Why aren't these IDs? This method of page layout allows for multi types of layouts on one page. So you might have a lyt-1col followed by lyt-2col-a, followed by another lyt-1col.
col-a, col-b, col-c
These three classes work in each Column Wrapper
What's the col-bc thing all about? I'm using the same markup for both fluid- and fixed-width layouts. In the lyt-3col layout, I found it necessary to wrap the middle and right columns in col-bc in order to make the middle column fluid.
mod
Modules are a good way of structuring and organizing your content. Discrete chunks of content should each be wrapped in a module.
In building a fluid layout, modules are key to making the layout work.
Because of their uniform structure, modules can be moved or copied from column to column without changing any of their markup.
For more about modules, see my presentation on module structure and use.
#bd section of the page, you can have multiple kinds of layouts stacked on top of each other..lyt-2col-a .lyt-2col-b .col-b {}).