Limited support 注意が必要。一部のブラウザのみ対応。プロダクション利用は慎重に判断すること。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
css.at-rules.container.scroll-state_queries
実験的
133
133
133
CSS @ ルール
scroll-state queries.scrollable
実験的
133
133
133
scroll-state queries.snapped
実験的
133
133
133
scroll-state queries.stuck
実験的
133
133
133
CSS プロパティ
scroll-state
実験的
133
133
133
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)

基本構文

CSS
.header {
  position: sticky;
  top: 0;
  container-type: scroll-state;
}
@container scroll-state(stuck: top) {
  .header { box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
}

ライブデモ

stuck: top

CSS Stuck: top demo.

プレビュー全画面表示

snapped

CSS Snapped demo.

プレビュー全画面表示

scrollable

CSS Scrollable demo.

プレビュー全画面表示

実務での使いどころ

  • スティッキーヘッダーの固定状態検知

    sticky ヘッダーが上部に固定された際にシャドウを追加するなど、JavaScriptなしでスクロール状態に応じたスタイル変更ができます。

注意点

  • Chrome 133以降でのみサポートされる実験的な機能です。Safari、Firefoxでは未サポートのため、プログレッシブエンハンスメントとして導入してください。

アクセシビリティ

  • スクロール状態に応じた視覚的変更は補助的な情報として扱い、重要な機能がスクロール状態に依存しないようにしてください。