CSS/@scope
< CSS
@scope
編集@scopeは、CSSルールの適用範囲を限定するために使用されるルールです。この機能は、特定の要素やその子孫要素にのみスタイルを適用したい場合に便利です。@scope
を使用すると、スタイルのスコープを明示的に定義し、グローバルなスタイルの衝突を防ぐことができます。
構文
編集基本的な@scope
の構文は以下の通りです:
@scope [<セレクター>] { <CSSルール>; }
<セレクター>
: スコープの起点となる要素を指定します。このセレクターが省略された場合、ルールはデフォルトで文書全体に適用されます。<CSSルール>
: スコープ内で適用されるCSSのルールを記述します。
使用例
編集スコープの指定
編集@scope (.scoped-container) { h1 { color: blue; } }
この例では、.scoped-container
内のh1
要素に対してのみ、文字色を青にするスタイルを適用します。他の場所にあるh1
要素には影響を与えません。
子要素へのスタイルの適用
編集@scope (#section) { p { font-size: 18px; } a { text-decoration: none; } }
この例では、#section
内のp
要素とa
要素に対してのみスタイルが適用されます。
グローバルスタイルとスコープの併用
編集/* グローバルスタイル */ body { font-family: Arial, sans-serif; } /* スコープ内スタイル */ @scope (.special-section) { h2 { color: red; } }
この例では、文書全体にはArial
フォントが適用されますが、.special-section
内のh2
要素には文字色の赤が適用されます。
注意事項
編集@scope
は、CSSの階層構造をより明確にするための機能です。コンポーネントベースのデザインや特定のセクションに限定したスタイルを記述する際に役立ちます。- スコープの範囲外にある要素にはスタイルが適用されません。
- ブラウザサポート: 現在、
@scope
は実験的な機能であり、一部の最新ブラウザでのみサポートされています。他のブラウザでは無視されるため、フォールバックのスタイルを用意することをお勧めします。
ブラウザ対応状況
編集ブラウザ サポート Google Chrome 未サポート Microsoft Edge 未サポート Firefox 実験的サポート Safari 未サポート
最新のブラウザ対応状況はCan I Useで確認してください。
関連情報
編集@scope
を利用することで、コンポーネントごとにスタイルを明確に定義し、予期しないスタイルの衝突を回避することができます。