CSS スコープ
CSS スコープモジュールは、シャドウ DOM のスコープ機構を中心に、 CSS のスコープとカプセル化の機構を定義します。
CSS スタイルには、グローバルスコープと、シャドウツリーのスコープがあります。グローバルスコープのスタイルは、セレクターに一致するノードツリー内のすべての要素に適用され、そのツリー内のカスタム要素も含まれますが、各カスタム要素を構成するシャドウツリーには適用されません。セレクターとそれに関連するスタイル定義は、スコープ間で滲み出ることはありません。
シャドウツリーの CSS 内では、セレクターはツリーの外にある要素、つまりグローバルスコープ内や他のシャドウツリー内の要素を選択することはありません。各カスタム要素は自分自身でシャドウツリーを持っており、そのシャドウツリーにはカスタム要素を構成するすべての部品が格納されています(カスタム要素、つまり「ホスト」そのものは格納されていません)。
シャドウツリーコンテキストの内部からホストのスタイル設定ができると有益なことがあります。CSS スコープモジュールは、これを可能にするセレクターを定義します。
- シャドウツリーがそのホストをスタイル設定できるようにします。
- 外部 CSS でシャドウ DOM 内の要素にスタイルを設定できるようにします(ただし、関連するカスタム要素が外部スタイルを受け入れるように設定されている場合に限ります)。
リファレンス
セレクター
ガイド
- ウェブコンポーネント
-
再利用可能なウェブコンポーネント(他のコードから機能をカプセル化したカスタム要素)を作成するために使用するさまざまな技術を紹介します。
- シャドウ DOM の使用
-
要素へのシャドウ DOM の適用、シャドウ DOM ツリーへの追加、スタイル設定など、シャドウ DOM の基礎を記載します。
- テンプレートとスロットの使用
-
<template>
と<slot>
要素を用いて再利用可能な HTML 構造を定義し、ウェブコンポーネントの内部でその構造を使用します。 - カスタム要素の使用
-
機能をカプセル化するカスタム要素を作成するために使用する JavaScript API、Custom Elements API の紹介です。
関連概念
-
CSS
:defined
擬似クラス -
CSS
::part
擬似要素 -
HTML
<template>
要素 -
HTML
<slot>
要素 -
HTML
slot
属性 -
シャドウツリー (用語集の用語)
-
DOM (用語集の用語)
-
複合セレクター(用語)
-
セレクターリスト(用語)
-
ウェブコンポーネントインターフェイス、プロパティ、メソッド
CustomElementRegistry
インターフェイスElement
APIElement.slot
プロパティElement.assignedSlot
プロパティElement.attachShadow()
メソッド
HTMLSlotElement
インターフェイスHTMLTemplateElement
インターフェイスShadowRoot
インターフェイス
仕様書
Specification |
---|
CSS Scoping Module Level 1 |
関連情報
- CSS セレクターモジュール
- CSS 擬似要素モジュール
- CSS 名前空間モジュール
- CSS シャドウパーツモジュール
- Template, slot, and shadow (web.dev, 2023)
- Custom element best practices (web.dev, 2019)