Mastering CSS Grid Layout
CSS Grid Layout is a two-dimensional layout system for the web. It lets you lay out content in rows and columns, offering precise control over complex web interfaces.
Why CSS Grid?
Unlike Flexbox, which is primarily a one-dimensional layout system (either rows OR columns), CSS Grid handles both dimensions simultaneously.
Basic Setup
To transform an HTML container into a grid container, simply apply:
.container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
}
Key Terminology
- Grid Container: The parent element with
display: grid. - Grid Item: Direct children of the grid container.
- Grid Tracks: The space between any two grid lines (rows or columns).
- Grid Cell: The single unit space between four grid lines.
Responsive Layouts Without Media Queries
Using minmax() alongside auto-fit or auto-fill allows responsive grid items to re-flow automatically based on viewport width:
.card-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 1rem;
}
Summary
CSS Grid provides a clean, declarative syntax for layout design, eliminating complex float hacks or excessive div nesting.