Spec-Zone.ru › CSS

`scroll-snap-align` CSS property

Baseline Widely available

This feature is well established and works across many devices and browser versions. It's been available across browsers since January 2020.

The scroll-snap-align CSS property specifies the box's snap position as an alignment of its snap area.

Try it

scroll-snap-align: start;
scroll-snap-align: end;
scroll-snap-align: center;
<section class="default-example" id="default-example">
  <div id="example-parent">
    <div>1</div>
    <div id="example-element">2</div>
    <div>3</div>
  </div>
  <div class="info">Scroll »</div>
</section>
.default-example {
  flex-wrap: wrap;
}

.default-example .info {
  width: 100%;
  padding: 0.5em 0;
  font-size: 90%;
}

#example-parent {
  text-align: left;
  width: 250px;
  height: 250px;
  overflow-x: scroll;
  display: flex;
  box-sizing: border-box;
  border: 1px solid black;
  scroll-snap-type: x mandatory;
}

#example-parent > div {
  flex: 0 0 66%;
  width: 250px;
  background-color: rebeccapurple;
  color: white;
  font-size: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
}

#example-parent > div:nth-child(even) {
  background-color: white;
  color: rebeccapurple;
}

Syntax

/* Single keyword value */
scroll-snap-align: none;
scroll-snap-align: center;
scroll-snap-align: start;
scroll-snap-align: end;

/* Two keyword values */
scroll-snap-align: start end;
scroll-snap-align: end center;
scroll-snap-align: center start;

/* Global values */
scroll-snap-align: inherit;
scroll-snap-align: initial;
scroll-snap-align: revert;
scroll-snap-align: revert-layer;
scroll-snap-align: unset;

Values

This property is specified as one or two of the following keyword values, space-separated:

none
The box does not define a snap position in that axis.
start
The start alignment of this box's scroll snap area, within the scroll container's snapport is a snap position in this axis.
end
The end alignment of this box's scroll snap area, within the scroll container's snapport is a snap position in this axis.
center
The center alignment of this box's scroll snap area, within the scroll container's snapport is a snap position in this axis.

Description

The scroll-snap-align property specifies the box's snap position as an alignment of its snap area (as the alignment subject) within its snap container's snap port (as the alignment container).

One or two values can be specified for the scroll-snap-align property. If one value is set, it is applied to both the block and inline axes. If two values are set, the first value controls the block axis and the second value controls the inline axis.

Formal definition

Initial value none
Applies to all elements
Inherited no
Computed value as specified
Animation type discrete

Formal syntax

scroll-snap-align = 
  [ none | start | end | center ]{1,2}

Specifications

Specification
CSS Scroll Snap Module Level 1
# scroll-snap-align

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS
scroll-snap-align
69
79
68
56
11
69
68
48
11
10.0
69
11
center
69
79
68
56
11
69
68
48
11
10.0
69
11
end
69
79
68
56
11
69
68
48
11
10.0
69
11
none
69
79
68
56
11
69
68
48
11
10.0
69
11
start
69
79
68
56
11
69
68
48
11
10.0
69
11

See also

  • scroll-snap-stop
  • scroll-initial-target
  • CSS scroll snap module
  • Well-controlled scrolling with CSS scroll snap on web.dev (2018)

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/scroll-snap-align

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API