CSS3

@規則

@layer

  編集:2022.07.08 by T.A.

mdn

カスケード層の宣言法。

@layer <layer-ident>? {
 <stylesheet>
}

@layer 規則は、明示的なカスケード層を定義する ― その構文には、以下に述べる 2 種がある。

この構文による @layer 規則に対する制約と処理は、真 に評価される条件付きグループ規則 [CSS-CONDITIONAL-3] と同じになる。

<layer-ident>
CSS 識別子<ident>)であり、あるカスケード層を識別する 名前(layer name)を表現する:
<stylesheet>

注記: 層の名前の照合は、shadow DOM の境界を越えることはない ― light DOM 内の層たちの順序は、shadow DOM 内の[それらと名前が一致する層たち]の順序には影響しない。

@layer 規則は、【1 個以上の】名前のみを供することで、[スタイル規則をあてがうことなく新たなカスケード層を定義する]ためにも利用できる:

@layer <layer-ident>#;

名前のみを供する @layer 規則†は、[@import 規則/他の @layer 規則]が許容される所なら、どこでも許容される。

【† 原文では“空な @layer 規則”と称されているが、[ブロックを伴う構文でありつつ、ブロックの内容が空な @layer 規則]と紛らわしいので、この訳では直に“名前のみを供する”と記すことにする。】

カスケード層の名前は、省略可能ではあるが、単独の層に複数のスタイル ブロックを適用する仕方を供する。次の例における[headings.css、links.css]の内容は、audio[controls] 規則と同じ層の中でカスケードされる:

@import url(headings.css) layer(default);
@import url(links.css) layer(default);

@layer default {
  audio[controls] {
    display: block;
  }
}

名前のみを供する構文は、層たちの順序を確立することも許容する ― 各層にスタイル規則を追加する順序に関わらず。

次の例では、インポートされた theme.css スタイル規則は、後で default ブロック内に追加されるスタイル規則を上書きすることになる ― これらの層の順序は、すでに確立済みなので。

@layer default;
@layer theme;
@layer components;

@import url(theme.css) layer(theme);

@layer default {
  audio[controls] {
    display: block;
  }
}

それはまた、カンマで分離された構文で書くこともできる:

@layer default, theme, components;

@import url(theme.css) layer(theme);

@layer default {
  audio[controls] {
    display: block;
  }
}

¶例を省く

以下のCSSが組み込んであります:

<SPAN class=Test>テスト</SPAN>
意味が無いが、、


テスト
import.css:

HTML:

ここに表示
HTML:

ここに表示
スクリプト:


スクリプト:



表示内容:
表示内容: