CSS Grid Reference

Master CSS Grid with template areas, grid lines, and auto-placement

Grid Container Basics

display: grid; # enable grid
grid-template-columns: 200px 1fr 1fr; # 3 columns
grid-template-rows: auto 100px; # 2 rows
gap: 20px; # spacing between items
row-gap: 10px; # vertical spacing
column-gap: 15px; # horizontal spacing

Template Areas

grid-template-areas:
  "header header header"
  "sidebar main main"
  "footer footer footer"; # layout map

# Assign items to areas
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }

Grid Lines

# Position by line numbers
grid-column: 1 / 3; # span columns 1-2
grid-row: 2 / 4; # span rows 2-3

# Named lines
grid-template-columns:
  [start] 1fr [content] 2fr [end];
grid-column: start / content; # use names

Repeat & Auto

grid-template-columns: repeat(3, 1fr); # 3 equal columns
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); # responsive
grid-auto-rows: 100px; # implicit row size
grid-auto-flow: dense; # fill gaps
grid-auto-columns: 1fr; # implicit col size

Item Placement

justify-self: start; # horizontal align item
align-self: center; # vertical align item
justify-items: stretch; # all items horizontal
align-items: end; # all items vertical
place-items: center; # center everything
grid-column: span 2; # span 2 columns