This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.
Deprecated
This feature has been removed from the Web standards. Though some browsers may still support it, it is in the process of being dropped. Avoid using it and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
The scroll-snap-coordinate
CSS property defines the positions in x and y coordinates within the element which will align with the nearest ancestor scroll container's scroll-snap-destination
for the respective axis.
If the element has been transformed, the snap coordinate is transformed in the same way in order to align the snap point with the element as it is displayed.
Initial value | none |
---|---|
Applies to | all elements |
Inherited | no |
Percentages | refer to the element’s border box |
Media | interactive |
Computed value | as specified, but with relative lengths converted into absolute lengths |
Animation type | a position |
Canonical order | the unique non-ambiguous order defined by the formal grammar |
/* Keyword value */ scroll-snap-coordinate: none; /* <position> values */ scroll-snap-coordinate: 50px 50px; /* Single coordinate */ scroll-snap-coordinate: 100px 100px, 100px bottom; /* Multiple coordinates */ /* Global values */ scroll-snap-coordinate: inherit; scroll-snap-coordinate: initial; scroll-snap-coordinate: unset;
none
<position>
none | <position>#where
<position> = [[ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] | [ center | [ left | right ] <length-percentage>? ] && [ center | [ top | bottom ] <length-percentage>? ]]where
<length-percentage> = <length> | <percentage>
<div id="container"> <div> <p>At coordinate (0, 0)</p> <div class="scrollContainer coordinate0"> <div>1</div> <div>2</div> <div>3</div> </div> </div> <div> <p>At coordinate (25, 0)</p> <div class="scrollContainer coordinate25"> <div>1</div> <div>2</div> <div>3</div> </div> </div> <div> <p>At coordinate (50, 0)</p> <div class="scrollContainer coordinate50"> <div>1</div> <div>2</div> <div>3</div> </div> </div> </div>
#container { display: flex; } #container > div:nth-child(-n+2) { margin-right: 20px; } .scrollContainer { width: 100px; overflow: auto; white-space: nowrap; scroll-snap-type: mandatory; font-size: 0; } .scrollContainer > div { width: 100px; height: 100px; display: inline-block; line-height: 100px; text-align: center; font-size: 50px; } .coordinate0 > div { scroll-snap-coordinate: 0 0; } .coordinate25 > div { scroll-snap-coordinate: 25px 0; } .coordinate50 > div { scroll-snap-coordinate: 50px 0; } .scrollContainer > div:nth-child(even) { background-color: #87ea87; } .scrollContainer > div:nth-child(odd) { background-color: #87ccea; }
Specification | Status | Comment |
---|---|---|
CSS Scroll Snap Module Level 1 The definition of 'scroll-snap-coordinate' in that specification. | Candidate Recommendation | Initial definition |
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | ? | 39.0 (39.0) | No support | No support | No support |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | No support | 39.0 (39.0)[1] | 39.0 (39.0) | No support | No support | No support |
[1] On Firefox Mobile, available since Gecko 39, but behind the preference layout.css.vertical-text.enabled
, disabled by default.
© 2005–2017 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-coordinate