CSS Grid justify-content is confusing.
You set it and nothing changes. You realize it only works if the grid tracks don't fill the container. You mix it up with align-content.
Let's break down how alignment actually works in CSS Grid.
The Core Issue: Empty Space
Both justify-content and align-content do the same thing: they distribute empty space in a container.
If your grid tracks take up 100% of the container's width or height, there is no empty space. Therefore, these properties do nothing.
You only see the effect when your grid tracks are smaller than the container.
Justify-Content (The Horizontal Axis)
justify-content aligns the grid columns (tracks) along the inline (horizontal) axis.
.container {
display: grid;
grid-template-columns: 100px 100px; /* Only 200px wide */
width: 400px; /* Container is 400px wide */
justify-content: center;
}
Because there is 200px of empty space, justify-content: center pushes the columns to the middle.
Common values:
-
start(default) centerendspace-betweenspace-aroundspace-evenly
Align-Content (The Vertical Axis)
align-content aligns the grid rows (tracks) along the block (vertical) axis.
.container {
display: grid;
grid-template-rows: 100px 100px; /* Only 200px tall */
height: 400px; /* Container is 400px tall */
align-content: center;
}
This pushes the rows to the vertical center.
The Nested Grid Trap
A common failure point is a nested grid (a grid inside a grid item).
If you apply align-content to an inner grid, it does nothing because the inner grid collapses to the height of its content.
.outer-grid {
display: grid;
height: 400px;
}
.inner-grid {
display: grid;
/* align-content: center; This will DO NOTHING */
height: 100%;
/* You must set height: 100% to give it space to distribute */
align-content: center; /* Now it works */
}
Justify vs Align Cheat Sheet
justify-content aligns tracks horizontally (left to right).
align-content aligns tracks vertically (top to bottom).
justify-items aligns the content inside the grid items horizontally.
align-items aligns the content inside the grid items vertically.
Prototyping Visually
If you want to understand exactly how align-content and justify-content distribute tracks without writing code and reloading the browser, I built a free CSS Grid Justify-Content Explorer.
What it does:
- Explores
justify-contentandalign-contentvisually - Shows how tracks distribute in real-time
- Exports clean CSS
100% client-side. Nothing uploaded.
What's the most confusing part of CSS Grid for you? Let me know in the comments.
Top comments (0)