The place-content property is a shorthand for align-content and justify-content. It packs or distributes content along the block and inline axes in a flex or grid container.
One value sets both axes (when valid for both). Two values set block first, then inline. It is not place-items, which aligns each item inside its cell.
Standard-track.
Not deprecated. Baseline widely available. Needs spare space in the container to show a visible change.
Same one-value rule.space-between is valid for both longhands, so both axes use it.
Pin the edges. First and last tracks sit flush to the container edges on each axis.
Share the leftover. Spare space sits between the tracks, not outside them.
Compare with evenly.space-evenly also leaves equal gaps before the first and after the last track.
Edge Cases & Pitfalls
If the tracks do not move, one of these is usually why.
space
No spare space, no visible change
If the container is only as large as its content, every keyword looks the same. Give the box extra width and/or height.
flex
One flex line limits the block axis
With flex-wrap: nowrap, there is only one line, so the align-content half has nothing to pack. Set flex-wrap: wrap.
one-value
One value must be valid for both
If a single keyword is invalid for either longhand, the whole declaration is dropped. Prefer two values when mixing baseline and distribution keywords.
items
Not the same as place-items
place-items aligns each item in its cell. place-content moves the tracks (or flex lines) as a group.
order
Remember block then inline
place-content: start end is not the same as end start. First = align-content, second = justify-content.
Compatibility
Browser Support
place-content is a browser layout property for flex and grid. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available since Jan 2020
place-content
Chrome 59+, Firefox 45+, Safari 9+, Edge 79+, Opera 46+, Samsung Internet 7.2+. Internet Explorer has no support.
97%Modern browser support
Google Chrome59+
Full support
Mozilla Firefox45+
Full support
Apple Safari9+
Full support
Microsoft Edge79+
Full support
Opera46+
Full support
Samsung Internet7.2+
Full support
Internet ExplorerNo support
None
place-contentWidely supported
Bottom line: Safe in current browsers. For Internet Explorer, set align-content and justify-content as separate longhands instead of the shorthand.
Remember
Key Takeaways
Role: shorthand for packing content on both axes (align-content + justify-content).
Common values:center, start end, space-between, space-evenly.
Initial value:normal. Not inherited.
Needs: leftover space (and wrapped flex lines when using flex).
One line:place-content aims the whole content group; place-items aims each item in its cell.
Frequently Asked Questions
It is a shorthand for align-content and justify-content. It packs or distributes the content tracks of a flex or grid container along the block and inline axes.
place-content aligns the overall content (tracks or flex lines) inside the container. place-items aligns each item inside its own cell or line.
A single value sets both align-content and justify-content, if that value is valid for both. For example, place-content: center centers on both axes.
The first value is align-content (block axis). The second is justify-content (inline axis). Example: place-content: start center.
The container needs leftover space, and flex needs more than one line (flex-wrap: wrap). Without spare space, every keyword looks the same.
It is Baseline and widely available since January 2020: Chrome 59+, Firefox 45+, Safari 9+, Edge 79+. Internet Explorer does not support it. It is a browser layout property, not a Node.js feature.