This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The scroll-snap-type
CSS property defines how strictly snap points are enforced on the scroll container in case there is one.
Specifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.
/* Keyword values */ scroll-snap-type: none; scroll-snap-type: mandatory; scroll-snap-type: proximity; /* Global values */ scroll-snap-type: inherit; scroll-snap-type: initial; scroll-snap-type: unset;
Initial value | none |
---|---|
Applies to | scroll containers |
Inherited | no |
Media | interactive |
Computed value | as specified |
Animation type | discrete |
Canonical order | the unique non-ambiguous order defined by the formal grammar |
none
mandatory
proximity
none | mandatory | proximity
<div class="container mandatoryScrollSnapping"> <div>1</div> <div>2</div> <div>3</div> </div> <div class="container proximityScrollSnapping"> <div>1</div> <div>2</div> <div>3</div> </div>
.container { width: 100%; overflow: auto; white-space: nowrap; scroll-snap-points-x: repeat(100%); scroll-snap-type: mandatory; font-size: 0; } .mandatoryScrollSnapping { margin-bottom: 20px; scroll-snap-type: mandatory; } .proximityScrollSnapping { scroll-snap-type: proximity; } .container > div { width: 100%; height: 100px; display: inline-block; line-height: 100px; text-align: center; font-size: 50px; } .container > div:nth-child(even) { background-color: #87EA87; } .container > div:nth-child(odd) { background-color: #87CCEA; }
Specification | Status | Comment |
---|---|---|
CSS Scroll Snap Module Level 1 The definition of 'scroll-snap-type' in that specification. | Candidate Recommendation | Initial definition |
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | No | 12 -ms- | 39 | 10 -ms- | No | 9 -webkit- |
Feature | Android webview | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic support | No | No | 12 -ms- |
46 391 |
No | No | 9 -webkit- |
1. From version 39: this feature is behind the layout.css.scroll-snap.enabled
preference (needs to be set to true
). To change preferences in Firefox, visit about:config.
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-snap-type