:scope (pseudo-class)
:scopeは、CSSセレクターのスコープの基準となる要素(スコーピングルート)を選択する擬似クラスです。スタイルシートのトップレベルでは:rootと同等ですが、querySelector()のコンテキスト内やCSS @scopeルール内では呼び出し元の要素にマッチします。コンポーネントベースの開発で、スタイルの適用範囲を明確に制限する際に有用です。
概要
:scopeは、CSSセレクターのスコープの基準となる要素(スコーピングルート)を選択する擬似クラスです。スタイルシートのトップレベルでは:rootと同等ですが、querySelector()のコンテキスト内やCSS @scopeルール内では呼び出し元の要素にマッチします。コンポーネントベースの開発で、スタイルの適用範囲を明確に制限する際に有用です。
対応ブラウザ
デスクトップ
Chrome 27+
Edge 79+
Safari 7+
Firefox 32+
モバイル
Chrome Android 27+
Safari iOS 7+
Firefox Android 32+
基本構文
CSS
@scope (.card) {
:scope {
border: 1px solid #ddd;
padding: 16px;
}
:scope > h2 {
margin-top: 0;
}
} 実務での使いどころ
-
スコープ付きスタイルの基準指定
@scopeルールやquerySelectorのコンテキストで、スコープの起点となる要素自体にスタイルを適用します。
注意点
- グローバルスタイルシート内の:scopeは:rootと同等であり、特別なスコーピング効果はありません。
アクセシビリティ
- :scopeによるスタイルの限定は視覚的な影響のみであり、DOMの構造やアクセシビリティツリーには影響しません。