TaskBuild a 4-column grid where the first item spans 2 columns + 2 rows. .grid: display grid, grid-template-columns: repeat(4, 1fr), gap: 8px. .big spans grid-column: 1 / 3 and grid-row: 1 / 3. Five more items auto-flow.
Placing items: grid-column / grid-row + span
100 XP8 min
Theory
Direct placement on the grid
By default, items flow into cells row-by-row (left to right). You can override:
.featured {
grid-column: 1 / 3; /* spans columns 1 to 3 (2 columns wide) */
grid-row: 1 / 3; /* spans rows 1 to 3 (2 rows tall) */
}The grid lines are numbered starting from 1 (the left/top edge). A 3-column grid has 4 vertical grid lines (1, 2, 3, 4).
span shorthand
.featured {
grid-column: span 2; /* spans 2 columns starting from wherever auto-placement puts it */
grid-row: span 3; /* spans 3 rows */
}span N is "this item is N tracks wide/tall, place it wherever fits next."
Negative numbers and -1
.full-width-footer {
grid-column: 1 / -1; /* from line 1 to the LAST line β full row, no matter how many columns */
}-1 is the last line in the grid. Useful for "always full-width" rows.
Common pattern: feature row + sub-grid
.gallery {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 12px;
}
.hero { grid-column: 1 / -1; } /* full-width hero */
.featured { grid-column: 1 / 3; grid-row: span 2; } /* 2-col 2-row featured tile */The remaining items auto-flow into the empty cells.
π
Sign up to start coding
Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β card required, cancel anytime.
Sign up β free trial βFirst 10 lessons in each track are free. No card needed for those.