The scroll-snap-align property sets how a box’s snap area aligns inside the scroll container’s snapport. It is set on snap targets (slides, panels, cards) — not on the scroller itself.
Common values are start, center, and end. The initial value is none (not a snap target). It is not inherited. The container still needs scroll-snap-type.
Baseline Widely available.
Standard-track scroll snap longhand. One keyword applies to both axes; two keywords set block then inline.
Syntax
CSS Syntax
syntax.css
scroll-snap-align:none | start | end | center | [block inline] | initial | inherit;
With two values, the first is the block axis and the second is the inline axis.
scroll-snap-align is a browser layout property for scroll snap. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available since 2020
scroll-snap-align
Chrome 69+, Firefox 68+, Safari 11+, Edge 79+, Opera 56+, Samsung Internet 10.1+. Internet Explorer does not support the modern property.
97%Modern browsers
Google Chrome69+
Full support
Mozilla Firefox68+
Full support
Apple Safari11+
Full support
Microsoft Edge79+
Full support
Opera56+
Full support
Samsung Internet10.1+
Full support
Internet ExplorerNo support
Not supported
scroll-snap-alignWidely supported
Bottom line: Safe for modern carousels and snap UIs. Pair with scroll-snap-type on the container. Not a server runtime API.
Remember
Key Takeaways
Role: choose how each snap target aligns inside the snapport.
Values:none, start, center, end (one or two keywords).
Initial value:none. Not inherited. Set on targets, not the scroller.
Tip: always pair with scroll-snap-type on the overflow container.
One line:scroll-snap-align tells each slide whether to snap to the start, center, or end of the scrollport.
Frequently Asked Questions
It sets how a snap target aligns inside the scroll container’s snapport. Common values are start, center, and end.
The initial value is none. The element is not a snap target until you set start, center, or end.
scroll-snap-type is set on the scroll container and turns snapping on. scroll-snap-align is set on each target and chooses where that target snaps.
Yes. One value applies to both axes. Two values set block then inline: for example start center.
No. Set it on each element that should snap.
It is Baseline and widely available: Chrome 69+, Firefox 68+, Safari 11+, Edge 79+, Opera 56+. Internet Explorer does not support the modern property. It is a browser layout property, not a Node.js feature.