The 960 Grid System is an effort to streamline web development workflow by providing commonly used dimensions, based on a width of 960 pixels. There are two variants: 12 and 16 columns, which can be used separately or in tandem. Read more.
The 12-column grid is divided into portions that are 60 pixels wide. The 16-column grid consists of 40 pixel increments. Each column has 10 pixels of margin on the left and right, which create 20 pixel wide gutters between columns. View demo.
The premise of the system is ideally suited to rapid prototyping, but it would work equally well when integrated into a production environment. There are printable sketch sheets, design layouts, and a CSS file that have identical measurements.
For those more comfortable designing on a 24-column grid, an alternative version is also included. It consists of columns 30 pixels wide, with 10 pixel gutters, and a 5 pixel buffer on each side of the container. This keeps text from touching browser chrome — helpful for devices like the iPhone, where a lower-case "i" or "l" might be easily missed. View demo.
By utilizing the push_XX and pull_XX classes, elements can be rearranged, independent of the order in which they appear in the markup. This allows you to keep more pertinent info higher in the HTML, without sacrificing precision in your page layout. For instance, view the source code of this page to see how the H1 tag has been re-positioned.
Sony Music — 16 col
Drupal — 12 col
Fedora Project — 16 col
5by5 Studios — 12 col
Hugh Griffith — 12 col
Nick Finck — 16 col
Gantry Framework — 12 col
Trakt — 12 col
51bits — 12 col
Onehub — 16 col
Four Kitchens — 12 col
Sacramento International Airport — 16 col
Tapbots — 12 col
VCU Qatar — 12 col
American Institute of Architects — 12 col
Pulse App — 16 col
Refresh Boston — 16 col
Right From the Heart — 16 col
Black Estate Vineyard — 12 col
Simplified Safety — 16 col
A Better Office — 12 col
Brand Rich Media — 12 col
Pixel Dreams — 16 col
Formalize CSS — 12 col
View comprehensive code on the demo page.
To the right is an example of how the code works. The container specifies how many total columns exist, either 12 or 16. For the most part, you will only ever need to specify a class name of grid_XX, where XX represents the column width.
If a grid unit contains grid children, the first child in a row will need a class of alpha and the last child in a row requires the class name omega. Likewise, if you want to insert empty space before or after a grid unit, use class prefix_XX or suffix_XX.
<div class="container_12"> <div class="grid_7 prefix_1"> <div class="grid_2 alpha"> ... </div> <div class="grid_3"> ... </div> <div class="grid_2 omega"> ... </div> </div> <div class="grid_3 suffix_1"> ... </div> </div>
All modern monitors support at least 1024 × 768 pixel resolution. 960 is divisible by 2, 3, 4, 5, 6, 8, 10, 12, 15, 16, 20, 24, 30, 32, 40, 48, 60, 64, 80, 96, 120, 160, 192, 240, 320 and 480. This makes it a highly flexible base number to work with.
I drew inspiration from these individuals: Khoi Vinh, Cameron Moll, Olav Bjørkøy, Brandon Schauer, Jeff Croft, Mark Boulton, and Eric Meyer. Their work spurred me to create my own. I “stand on the shoulders of giants,” so to speak.
In addition to design template files, there are app plugins for Photoshop and Fireworks included in the official download. Additionally, DMXzone has created a Dreamweaver extension and templates, available free to members of their site.
Web Designer Depot featured an article on writing less code by styling tags directly. Nettuts has both a tutorial and video. WooThemes wrote a post entitled “Why we love 960.gs.” There are also articles in Spanish   and Swedish  .
The 960 Grid System is free to use, and may be repurposed to meet your specific needs. Several projects have already spun off, including versions that were built to be fluid and elastic. Additionally, it is has been adapted as a theme for Drupal.