CSSのscroll-snapでスクロールを制御する方法

CSS scroll-snapの使い方を初心者向けに解説。snap-type・snap-align・scroll-paddingの指定から横スクロールやフルページスクロールの実装までコード例で紹介。中高生向け。無料。

2026年4月16日

CSS scroll-snap とは?

スクロールするとぴったり次のセクションに止まる——そんな動きを作るのが CSS scroll-snap(スクロールスナップ) です。

JavaScriptなしで、CSSだけでスライダーやフルページスクロールが実装できます。

基本的な使い方

親要素に scroll-snap-type、子要素に scroll-snap-align を指定します。

/* 親要素:スクロール方向とスナップの強さを指定 */
.container {
  overflow-y: scroll;
  scroll-snap-type: y mandatory; /* 縦方向・強制スナップ */
  height: 100vh;
}

/* 子要素:スナップする位置を指定 */
.section {
  scroll-snap-align: start; /* 上端でスナップ */
  height: 100vh;
}

👉 displayプロパティ完全解説も参考にしてください。

横スクロールスライダー

.slider {
  display: flex;
  overflow-x: scroll;
  scroll-snap-type: x mandatory;
  gap: 16px;
}

.slide {
  scroll-snap-align: start;
  flex-shrink: 0;
  width: 100%;
}

🔥 CSSセレクターの使い方で実践してみましょう。

scroll-snap-typeの値

意味
x mandatory横方向・必ずスナップ
y mandatory縦方向・必ずスナップ
y proximity縦方向・近くにあればスナップ

💡 hoverで動きをつける方法で基礎を確認できます。

まとめ

  • ✅ 親要素に scroll-snap-type、子要素に scroll-snap-align を指定
  • mandatory:必ずスナップ、proximity:近くにあればスナップ
  • ✅ 横スクロールスライダーも縦フルページスクロールも作れる
  • ✅ JavaScriptなしでCSSだけで実装できる

scroll-snapを使いこなすと、インタラクティブなレイアウトが作れます。レッスンでさらに詳しく学んでみましょう。

🎨 CSSをレッスンで学ぼう!

このサイトのCSSコースでは、scroll-snapを含む実践的なデザインをブラウザだけで学べます。無料・登録不要です。

CSSコースを見る →
目次

コースで実際に手を動かして学ぼう

レッスンではコードを書きながら基礎が身につきます

HTMLコースを始める →

この記事に出てくる用語

📣 この記事が役に立ったら

Xでシェア

💬 引用する場合はこちらをご利用ください:

CSS scroll-snapの使い方を初心者向けに解説。snap-type・snap-align・scroll-paddingの指定から横スクロールやフルページスクロールの実装までコード例で紹介。中高生向け。無料。

出典: https://start-web-programming.com/blog/css-scroll-snap/