Introduction
CSS Grid can build extremely advanced layouts — complex grids, overlapping elements, named areas, auto-placement, masonry-like layouts, and responsive designs with almost no media queries. This tutorial covers the advanced techniques professionals use.
1. Named Grid Areas
.container {
display: grid;
grid-template-areas:
"header header"
"sidebar content"
"footer footer";
grid-template-columns: 200px 1fr;
gap: 15px;
}
header { grid-area: header; }
aside { grid-area: sidebar; }
main { grid-area: content; }
footer { grid-area: footer; }
2. Repeat + Minmax
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 20px;
}
Perfect for responsive cards.
3. Overlapping Grid Items
.item1 {
grid-column: 1 / 3;
grid-row: 1 / 2;
}
.item2 {
grid-column: 2 / 4;
grid-row: 1 / 3;
}
4. Explicit vs. Implicit Grids
.grid {
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 200px;
}
Extra content fills implicit rows automatically.
5. Auto-Fit vs Auto-Fill
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
auto-fit collapses empty columns, auto-fill keeps the empty tracks.
6. Masonry Layout (Modern CSS Grid Level 3)
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: masonry;
}
Create Pinterest-style layouts (supported in modern browsers).
7. Aligning Content
.grid {
align-items: center;
justify-items: center;
}
8. Grid Item Self-Alignment
.item {
justify-self: start;
align-self: end;
}
9. The Subgrid Feature
.parent {
display: grid;
grid-template-columns: 1fr 2fr;
}
.child {
display: grid;
grid-template-columns: subgrid;
}
Subgrid inherits parent tracks → perfect for nested layouts.
10. Fraction Units + Max-Content
grid-template-columns: max-content 1fr;
11. Grid Template Shorthand
grid:
"header header" 80px
"sidebar content" auto
"footer footer" 60px
/ 200px 1fr;
12. Responsive Grid Without Media Queries
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
13. Using gap Instead of margins
.grid {
gap: 24px;
}
14. Spanning Multiple Rows Dynamically
.item {
grid-row: span 2;
}
15. Grid Performance Tips
- Avoid huge numbers of grid items
- Use
auto-fitfor responsive designs - Use subgrid for nested layout complexity
- Use grid areas for readability
Summary
- Named areas simplify complex page layouts
minmax+repeatbuild responsive grids- Masonry-like layouts possible in modern CSS
- Subgrid enables consistent nested layout systems
- Auto-fit and auto-fill automate responsiveness
- Grid is the most powerful layout tool in CSS