--- title: scroll-snap-stop slug: Web/CSS/scroll-snap-stop tags: - CSS - CSS スクロールスナップ - Reference - Web - recipe:css-property - scroll-snap-stop browser-compat: css.properties.scroll-snap-stop translation_of: Web/CSS/scroll-snap-stop --- {{CSSRef}} **`scroll-snap-stop`** は [CSS](/ja/docs/Web/CSS) のプロパティで、スクロールコンテナーが可能なスナップ位置を「通り過ぎる」ことを許可するかどうかを定義します。 ```css /* キーワード値 */ scroll-snap-stop: normal; scroll-snap-stop: always; /* グローバル値 */ scroll-snap-type: inherit; scroll-snap-type: initial; scroll-snap-type: unset; ``` ## 構文 ### 値 - `normal` - : スクロールコンテナーの視覚{{Glossary("viewport", "ビューポート")}}がスクロールされた時、可能なスナップ位置を「通り過ぎる」ことを許可します。 - `always` - : スクロールコンテナーは可能なスナップ位置を「通り過ぎる」ことを許可しません。最初の要素のスナップ位置にスナップします。 ## 公式定義 {{CSSInfo}} ## 形式文法 {{csssyntax}} ## 例

様々な軸でのスナップ

この例は {{cssxref("scroll-snap-type")}} から複製したものに多少の修正を加えたものです。 #### CSS ```css /* setup */ :root, body { height: 100%; display: flex; align-items: center; justify-content: space-between; flex-flow: column nowrap; font-family: monospace; } .container { display: flex; overflow: auto; outline: 1px dashed lightgray; flex: none; } .container.x { width: 100%; height: 128px; flex-flow: row nowrap; } .container.y { width: 256px; height: 256px; flex-flow: column nowrap; } /* definite scroll snap */ .mandatory-scroll-snapping > div { scroll-snap-stop: always; } .proximity-scroll-snapping > div { scroll-snap-stop: normal; } /* scroll-snap */ .x.mandatory-scroll-snapping { scroll-snap-type: x mandatory; } .y.mandatory-scroll-snapping { scroll-snap-type: y mandatory; } .x.proximity-scroll-snapping { scroll-snap-type: x proximity; } .y.proximity-scroll-snapping { scroll-snap-type: y proximity; } .container > div { text-align: center; scroll-snap-align: center; flex: none; } .x.container > div { line-height: 128px; font-size: 64px; width: 100%; height: 128px; } .y.container > div { line-height: 256px; font-size: 128px; width: 256px; height: 256px; } /* appearance fixes */ .y.container > div:first-child { line-height: 1.3; font-size: 64px; } /* coloration */ .container > div:nth-child(even) { background-color: #87EA87; } .container > div:nth-child(odd) { background-color: #87CCEA; } ``` #### HTML ```html
X Mand. LTR
2
3
4
5
X Proximity LTR
2
3
4
5
Y Mand. LTR
2
3
4
5
Y Prox. LTR
2
3
4
5
X Mandatory RTL
2
3
4
5
X Proximity RTL
2
3
4
5
Y Mand. RTL
2
3
4
5
Y Prox. RTL
2
3
4
5
``` #### 結果 {{EmbedLiveSample("Snapping_in_different_axes", "100%", "1630")}} ## 仕様書 {{Specifications}} ## ブラウザーの互換性 {{Compat}} ## 関連情報 - [CSS スクロールスナップ](/ja/docs/Web/CSS/CSS_Scroll_Snap) - [Well-Controlled Scrolling with CSS Scroll Snap](https://web.dev/css-scroll-snap/)