The place-self property is a shorthand for align-self and justify-self. Set it on one item to override how that item aligns inside its grid cell.
The default is auto, which follows the container’s place-items. One value sets both axes. Two values set block first, then inline. Clearest and most useful on grid items.
Standard-track.
Not deprecated. Baseline widely available. Put it on the child, not on the container.
Limited support anchor-center
The anchor-center keyword is newer and not ready for everyday use. Prefer center, start, end, auto, and stretch.
Change the container default.place-items: end packs every item to the end of its cell.
Use the initial value.place-self: auto means B does not invent its own alignment.
Match the siblings. B looks the same as A, C, and D because it follows the container.
When to write auto. Useful when resetting an override, or teaching that auto means “use place-items.”
Edge Cases & Pitfalls
If the override seems missing, one of these is usually why.
target
Set it on the item, not the container
Container alignment is place-items. place-self belongs on the child you want to move.
size
A full-size item hides the change
If the item already fills the cell, center and end look the same. Use a smaller item size to see the override.
auto
auto is not a fixed position
auto copies the container’s item alignment. Change place-items and the auto item moves with it.
flex
Justify half is mainly a grid story
align-self works in flex. justify-self is primarily for grid, so two-axis place-self is clearest on grid items.
order
Remember block then inline
place-self: start end is not the same as end start. First = align-self, second = justify-self.
Compatibility
Browser Support
place-self is a browser layout property for grid and related alignment. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available since Jan 2020
place-self
Chrome 59+, Firefox 45+, Safari 11+, 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 Safari11+
Full support
Microsoft Edge79+
Full support
Opera46+
Full support
Samsung Internet7.2+
Full support
Internet ExplorerNo support
None
place-selfWidely supported
Bottom line: Safe in current browsers for common keywords. For Internet Explorer, set align-self and justify-self as separate longhands. Treat anchor-center as progressive enhancement.
Remember
Key Takeaways
Role: shorthand to override one item’s alignment (align-self + justify-self).
Common values:auto, center, start end, end.
Initial value:auto. Not inherited.
Pairing: default with place-items on the container; override with place-self on the child.
One line:place-self is how one grid item breaks away from the container’s place-items.
Frequently Asked Questions
It is a shorthand for align-self and justify-self. Set it on one item to override how that item aligns inside its grid cell (or flex area).
place-items is set on the container and aligns all children. place-self is set on one child and overrides the container for that item only.
The initial value is auto. The item then follows the container's align-items and justify-items (or place-items) values.
A single value sets both align-self and justify-self. For example, place-self: center centers that one item on both axes.
align-self works on flex items. justify-self mainly applies in grid. place-self is clearest and most useful on grid items.
It is Baseline and widely available since January 2020: Chrome 59+, Firefox 45+, Safari 11+, Edge 79+. Internet Explorer does not support it. It is a browser layout property, not a Node.js feature.