CSSの新しいメンバー:@layer
CSSフィールド@layer
に新しい機能が登場しました。これは、CSSの開発に影響を与える上で重要な役割を果たしたミリアム・スザンヌのおかげです。以前にこの機能を聞いたことがありますが、実験的なブラウザでポップアップします。
Bramusは、この機能を詳細に調査する素晴らしい記事を書きました。
@layer
の出現により、米国の開発者は、カスケードスタイルのシートを制御するためのより多くのツールを提供します。@layer
の本当に強力なのは、セレクターの特異性と発生順序の前に、カスケードスタイルのシートにおける独自の位置です。このため、他のレイヤーで使用されるCSSのセレクターの特異性や、CSSがこれらのレイヤーにロードされる順序について心配する必要はありません。これは、大規模なチームやサードパーティのCSSをロードする場合に非常に役立ちます。Bramus van Damme 、「CSSの未来:レイヤー(CSS@レイヤー)*」
(大胆な部分は元のテキストで強調されています)
重要なのは、これがセレクターの優先度に影響する新機能です。 @layer
、実際のアプリケーションのスタイルを決定するまったく新しい(そして強力な)メカニズムであるため、CSSの理解を再調整する必要があります。
「高層」スタイルは、その層のセレクターが自分自身が弱い場合でも、「高層」スタイルが伝統的に強力なセレクターを打ち負かすことができるため、強力だと言います。
/* 1階*/ @layer base-layer { ボディ#foo { 背景:Tan; } } /*セレクターが弱い場合でも、より高いレベル、したがって勝ちます*/ @layer theme-layer { body.foo { 背景:#eee; } } /* 知らせ!解雇されたスタイルは、セレクターが弱い場合でも、階層化されたスタイルよりも強力です*/ 体 { 背景:赤; }
CSSの下部セグメントは層にまったく配置されていないため、セレクターが弱い場合でも勝ちます。
そして、あなたは1つのレベルに限定されません。必要に応じて定義して使用できます。
@layer reset;*「リセット」と呼ばれる最初のレイヤーを作成します @layer base;*「ベース」という名前の2番目のレイヤーを作成します @layerテーマ;*「テーマ」という名前の3番目のレイヤーを作成します @layerユーティリティ;*「ユーティリティ」と呼ばれる第4層を作成します / *または、@layerリセット、ベース、テーマ、ユーティリティ。 @layer reset { /*「リセット」という名前のレイヤーに追加されます* / / * ... */ } @layerテーマ{ /*「テーマ」という名前のレイヤーに追加されます* / / * ... */ } @layer base { /*「base」という名前のレイヤーに追加されます* / / * ... */ } @layerテーマ{ /*「テーマ」という名前のレイヤーに追加されます* / / * ... */ }
これは本当に衝撃的です。
共通のパターンがなるのだろうか...
z-index
を使用する場合のように、レイヤー間にスペースを残すことを心配する必要はありません。これは、数字を接続せずにいつでも調整できるためです。
時間がわかります。
開発者ツールに階層を非常に明確に表現してほしいと思います。なぜなら、階層の位置が勝つために弱く見えるセレクターが見えると、時間が経つにつれて深刻な混乱があるかもしれないからです。
Caniuseはこの問題に気づいたようです!
このブラウザは、Caniuseのデータをサポートしています。これには詳細が含まれています。番号は、ブラウザがこのバージョン以降でこの機能をサポートしていることを示しています。
これらは非常に新しい(執筆時点で)ため、不安定性が予想されます。 2021年10月6日に、人々は、不正なスタイルが実際に最も強いものであり、最も弱いものではないと判断したようです。これを表示するために記事を更新してみました。
以上がカスケード層の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。