カスケード層の宣言法。
@layer 規則は、明示的なカスケード層を定義する ― その構文には、以下に述べる 2 種がある。
この構文による @layer 規則に対する制約と処理は、真 に評価される条件付きグループ規則 [CSS-CONDITIONAL-3] と同じになる。
注記: 層の名前の照合は、shadow DOM の境界を越えることはない ― light DOM 内の層たちの順序は、shadow DOM 内の[それらと名前が一致する層たち]の順序には影響しない。
@layer 規則は、【1 個以上の】名前のみを供することで、[スタイル規則をあてがうことなく新たなカスケード層を定義する]ためにも利用できる:
名前のみを供する @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>意味が無いが、、
表示内容: |
表示内容: |