The justify-self property sets how one item is justified inside its alignment container on the inline axis. In grid, that is left–right placement inside the item’s grid area.
Put it on the item, not the container. The default auto follows the container’s justify-items. It is ignored in flexbox and table cells. For the block axis on one item, use align-self.
Standard-track.
Not deprecated. Grid support is widely available (Baseline since 2017). anchor-center is newer and limited—prefer auto, stretch, center, start, and end for study.
Syntax
CSS Syntax
syntax.css
justify-self:auto | normal | stretch | center | start | end | initial | inherit;
Also valid: left, right, self-start, self-end, baseline, and optional safe / unsafe.
If the override is invisible, the item may already fill the cell—or you may be in flex layout.
flex
Ignored in flexbox
justify-self has no effect on flex items. Use align-self (cross axis) or margins for one-off flex placement.
auto
auto is not a position
auto means “use the container’s justify-items.” If the container stretches, auto stretches too.
width
Fixed width blocks stretch
A set width on the item prevents stretch from growing it. Position keywords still need spare cell space to look different.
vs
Not justify-content
justify-content moves tracks inside the container. justify-self moves one item inside its cell.
place
Shorthand: place-self
place-self sets align-self and justify-self together when both axes should change on one item.
Compatibility
Browser Support
justify-self is a browser layout property (mainly CSS Grid). Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available since 2017
justify-self
Chrome 57+, Firefox 45+, Safari 10.1+, Edge 16+. Internet Explorer has no grid justify-self support.
96%modern browsers
Google Chrome57+
Full support
Mozilla Firefox45+
Full support
Apple Safari10.1+
Full support
Microsoft Edge16+
Full support
Opera44+
Full support
Samsung Internet6.2+
Full support
Internet ExplorerNo support
None
justify-selfWidely supported
Bottom line: Safe for modern grid layouts. Stick to auto, stretch, center, start, and end for the simplest study path. Newer keywords like anchor-center need extra care.
Remember
Key Takeaways
Role: override inline-axis alignment for one item inside its area.
Default auto: follows the container’s justify-items.
Best with grid: ignored in flexbox; teach it on a grid item.
Pair:align-self for the other axis, or place-self for both.
One line:justify-self is the per-item override of justify-items on the inline axis.
Frequently Asked Questions
It sets how one item is justified inside its alignment container on the inline axis. In grid, that means one item’s left–right placement inside its cell.
The initial value is auto. The item then follows the parent’s justify-items value (or normal if there is no parent / for some absolute cases).
justify-items is the container default for all items. justify-self overrides that default on a single item.
justify-self is the inline axis (left–right in LTR). align-self is the block / cross axis (top–bottom in a row grid).
No. In flex layout the property is ignored. Use align-self or margin tricks instead for one flex item.
Widely available for grid: Chrome 57+, Firefox 45+, Safari 10.1+, Edge 16+. It is a browser layout property, not a Node.js feature.