Back to Curriculum

CSS Grid Advanced

📚 Lesson 14 of 16 ⏱️ 45 min

CSS Grid Advanced

45 min

Building on basic Grid, advanced features unlock the true potential of layout design. **Grid Areas** allow you to name sections of your layout (like 'header', 'sidebar', 'main') and place items by name, making your CSS read like a map.

**Auto-placement** algorithms (`auto-fill` and `auto-fit`) combined with `minmax()` allow you to create responsive grids that automatically add or remove columns based on available space, without a single media query.

**Implicit Grids** are created when you place items outside of your defined columns/rows. Understanding how to control these auto-generated tracks is key to robust layouts.

**Subgrid** (a newer feature) allows nested grids to align with the parent grid's tracks, solving a long-standing layout difficulty.

Key Concepts

  • Grid Template Areas for semantic layout.
  • `minmax()` for flexible track sizing.
  • `auto-fill` vs `auto-fit` for responsive columns.
  • Implicit vs. Explicit grid tracks.
  • Subgrid for nested alignment.

Learning Objectives

Master

  • Designing with `grid-template-areas`
  • Creating responsive grids without media queries
  • Controlling implicit tracks with `grid-auto-rows`
  • Aligning nested items with Subgrid

Develop

  • Advanced layout architecture
  • Writing self-documenting CSS code
  • Handling dynamic content volume

Tips

  • Use `grid-template-areas` to visualize your layout in code.
  • Use `repeat(auto-fit, minmax(250px, 1fr))` for the 'Holy Grail' responsive card grid.
  • Use `grid-auto-flow: dense` to pack items tightly if order doesn't matter.
  • Name your grid lines (`[main-start]`) for complex placements.

Common Pitfalls

  • Confusing `auto-fill` (keeps empty tracks) with `auto-fit` (collapses them).
  • Not defining `grid-auto-rows`, leading to tiny implicit rows.
  • Overusing Grid for simple 1D lists (use Flexbox).
  • Browser support for Subgrid (check before using in production).

Summary

  • Advanced Grid features enable complex layouts.
  • Named areas make code readable.
  • Auto-placement handles responsiveness automatically.
  • It is the ultimate tool for web layout.

Exercise

Create a responsive grid that automatically adjusts columns using auto-fit.

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
  padding: 20px;
}

Exercise Tips

  • Compare auto-fit with auto-fill to see the difference in behavior.
  • Use grid-template-areas for semantic layout: grid-template-areas: 'header header' 'sidebar main';
  • Try subgrid for nested grids: display: grid; grid-template-columns: subgrid;
  • Use grid-auto-flow: dense to fill gaps in the grid automatically.

Code Editor

Output