Back to CSS Notes
Topic #283

12-column Layout

Master the 12-column grid system to create flexible, responsive layouts that adapt seamlessly across different screen sizes.

What it is

The 12-column layout is a design framework where the horizontal space of a container is divided into twelve equal vertical columns. This structure allows designers and developers to place content in specific column spans (e.g., one item taking up 4 columns, another taking 8). It is the industry standard for web grids because 12 is highly divisible by 1, 2, 3, 4, and 6, offering maximum flexibility for arranging elements without breaking alignment.

Why it matters

  • Consistency: Ensures all elements align vertically and horizontally, creating a clean, professional look.
  • Responsiveness: Makes it easy to change how many columns an element occupies on mobile versus desktop using media queries.
  • Collaboration: Provides a shared language between designers and developers, reducing ambiguity in layout specifications.
  • Maintainability: Simplifies code by relying on mathematical fractions rather than fixed pixel widths.

Syntax or steps

To implement this with modern CSS Grid, you define a parent container as a grid with twelve fractional units (1fr). Child elements then specify how many columns they should span using grid-column: span X;.

Example

<style>
  .container {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 16px; /* Space between columns */
    padding: 20px;
  }

  /* Default: Full width on small screens */
  .item {
    background-color: #f0f0f0;
    padding: 20px;
    border-radius: 4px;
    grid-column: span 12; 
  }

  /* Tablet and Desktop: Adjust spans */
  @media (min-width: 768px) {
    .sidebar {
      grid-column: span 3;
    }
    
    .main-content {
      grid-column: span 9;
    }
  }
</style>

<div class="container">
  <div class="item sidebar">Sidebar</div>
  <div class="item main-content">Main Content Area</div>
</div>

Explanation: The .container creates the 12-column track. By default, items span all 12 columns (stacking vertically). On screens wider than 768px, the .sidebar takes 3/12ths (25%) of the width, while .main-content takes the remaining 9/12ths (75%).

Common mistakes

  • Ignoring the Gap: Forgetting gap causes columns to touch, making text hard to read. Always include spacing.
  • Over-specifying Widths: Using width: 25% alongside grid-column can cause conflicts. Let the grid handle sizing via spans.
  • Nesting Issues: Placing a new grid inside a grid item without resetting its context can lead to unexpected overflow. Ensure child grids are independent containers.
  • Mobile-First Neglect: Defining complex desktop layouts first often breaks mobile views. Start with single-column stacks and expand upwards.

When to use it

Feature12-Column GridFlexbox
Best ForComplex page layouts, dashboards, magazine styles.Component-level alignment (navbars, cards).
ControlPrecise column placement and spanning.Distribution along one axis.
ResponsivenessEasy to reflow entire sections.Good for wrapping individual items.

Use the 12-column grid for the overall page structure. Use Flexbox for internal alignment within those grid cells.

Practice

Guided Exercise: Create a header that spans 12 columns, followed by three equal-width boxes below it. Each box should span 4 columns on desktop but stack vertically on mobile.

Challenge: Modify the example so that on large screens (>1024px), the sidebar becomes 2 columns wide and the main content expands to 10 columns.

Quick check

Q: Why is 12 chosen as the standard number of columns instead of 10?

A: 12 is divisible by more integers (1, 2, 3, 4, 6, 12) than 10 (1, 2, 5, 10), allowing for more balanced layout combinations like thirds and quarters simultaneously.

Summary

The 12-column grid provides a robust foundation for responsive web design by leveraging mathematical divisibility. By combining repeat(12, 1fr) with media queries and column spans, you can build layouts that remain consistent and readable across all devices.

Want to go beyond the notes?

Join Coding Now Tech Institute's CSS course — live mentorship, real projects, and 100% placement support.

Enroll Now — Free Demo Available

12-column Layout – FAQs

Quick answers about learning 12-column Layout in CSS.

This free note from Coding Now Tech Institute explains 12-column Layout in CSS — concept, syntax and worked code examples you can copy, run and revise before interviews.
Yes. Every CSS topic on Coding Now Tech Institute, including 12-column Layout, is 100% free with no signup required.
With focused practice, most students grasp 12-column Layout in 1–3 days from these notes; pairing it with Coding Now Tech Institute's mentor-led course takes you to job-ready depth faster.
Use the code examples in this note, then ask doubts for free on the Coding Now Tech Institute Community (/community) — expert instructors answer within 24 hours.
Call NowEnroll Now