The CSS Cascade を読んだメモ
Mar 23, 2024
The CSS Cascade を読んで、メモ。
- Cascading Style Sheetsの「Cascading」について説明している記事。
- カスケードは、よく理解していないと非常に苛立つ概念。
!important
と記述して強引に解決したくなる。 -
The CSS Cascade is the way our browsers resolve competing CSS declarations.
- CSSのカスケードとは、ブラウザーが競合するCSS宣言を解決する方法。
- CSSの宣言があるたびに、その宣言はカスケードの中に入る。
- カスケードの下層にあるものは上層のものから上書きされる可能性がある。
- カスケードの各層は以下。
-
- 重要度
-
- オリジン
-
- 詳細度
-
- 順序
-
- カスケードの各層の詳細は、
-
- 重要度
- この層には4種類ある。
-
- transition
transition
プロパティーがある場合、そのプロパティーは他のプロパティーよりも優先される。!important
よりも優先される。
-
- !important
-
- animation
animation
プロパティーは、!important
より優先されるものではないけど、他の通常のプロパティーより優先される。
-
- 通常のプロパティー
-
- アニメーションを適切に動かすために優先されるものと
!important
のための層。 - この層で差異が付かない場合、次の層で解決するかを見ることになる。
-
- オリジン
- この層では、どこで宣言されているかによって分類される。
-
- ウェブサイト
-
- ユーザー
-
- ブラウザー
- 各ブラウザーが持つデフォルトのスタイルシート。
-
-
- 詳細度
- この層ではルールの詳細度が見られる。5つに分類される。
-
style
属性
- HTMLの
style
属性が最も高い詳細度となる。
-
@layer
- @layer - CSS: カスケーディングスタイルシート | MDN
-
@layer は CSS のアットルールで、カスケードレイヤーを宣言するために使用し、また複数のカスケードレイヤーがある場合に、優先順位を定義するためにも使用することができます。
-
- モダンブラウザーでは十分にサポートされている。
-
id
セレクター
#id
セレクターが該当する。
-
class
セレクター, 擬似クラスセレクター, 属性セレクター
.class
、:hover
、[type="text"]
などが該当する。
-
- 要素セレクター、擬似要素セレクター
div
、a
、::before
などが該当する。
-
*
や>
のようなセレクターは詳細度に影響しない。
-
- 順序
- 最後の層では、順番が決め手になる。
- 後方にあるものが前方にあるものを上書きする。
-
- The cascade | web.dev
- web.devにも詳細な説明がある。
- CSSのカスケードの仕様を読むのがいい。