CSS スコープ

CSS スコープモジュールは、シャドウ DOMスコープ機構を中心に、 CSS のスコープとカプセル化の機構を定義します。

CSS スタイルには、グローバルスコープと、シャドウツリーのスコープがあります。グローバルスコープのスタイルは、セレクターに一致するノードツリー内のすべての要素に適用され、そのツリー内のカスタム要素も含まれますが、各カスタム要素を構成するシャドウツリーには適用されません。セレクターとそれに関連するスタイル定義は、スコープ間で滲み出ることはありません。

シャドウツリーの CSS 内では、セレクターはツリーの外にある要素、つまりグローバルスコープ内や他のシャドウツリー内の要素を選択することはありません。各カスタム要素は自分自身でシャドウツリーを持っており、そのシャドウツリーにはカスタム要素を構成するすべての部品が格納されています(カスタム要素、つまり「ホスト」そのものは格納されていません)。

シャドウツリーコンテキストの内部からホストのスタイル設定ができると有益なことがあります。CSS スコープモジュールは、これを可能にするセレクターを定義します。

  • シャドウツリーがそのホストをスタイル設定できるようにします。
  • 外部 CSS でシャドウ DOM 内の要素にスタイルを設定できるようにします(ただし、関連するカスタム要素が外部スタイルを受け入れるように設定されている場合に限ります)。

リファレンス

セレクター

ガイド

ウェブコンポーネント

再利用可能なウェブコンポーネント(他のコードから機能をカプセル化したカスタム要素)を作成するために使用するさまざまな技術を紹介します。

シャドウ DOM の使用

要素へのシャドウ DOM の適用、シャドウ DOM ツリーへの追加、スタイル設定など、シャドウ DOM の基礎を記載します。

テンプレートとスロットの使用

<template><slot> 要素を用いて再利用可能な HTML 構造を定義し、ウェブコンポーネントの内部でその構造を使用します。

カスタム要素の使用

機能をカプセル化するカスタム要素を作成するために使用する JavaScript API、Custom Elements API の紹介です。

関連概念

メモ: セレクターが一致する参照点(またはスコープ)となる要素を表す :scope 擬似クラスは、名前とは裏腹に、セレクターモジュールで定義されています。これは CSS スコープモジュールとは無関係で、シャドウ DOM のスコープ機構に関連するスコープに焦点を当てています。

仕様書

Specification
CSS Scoping Module Level 1

関連情報