M

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の宣言があるたびに、その宣言はカスケードの中に入る。
    • カスケードの下層にあるものは上層のものから上書きされる可能性がある。
    • カスケードの各層は以下。
        1. 重要度
        1. オリジン
        1. 詳細度
        1. 順序
  • カスケードの各層の詳細は、
      1. 重要度
      • この層には4種類ある。
          1. transition
          • transitionプロパティーがある場合、そのプロパティーは他のプロパティーよりも優先される。!importantよりも優先される。
          1. !important
          1. animation
          • animationプロパティーは、!importantより優先されるものではないけど、他の通常のプロパティーより優先される。
          1. 通常のプロパティー
      • アニメーションを適切に動かすために優先されるものと!importantのための層。
      • この層で差異が付かない場合、次の層で解決するかを見ることになる。
      1. オリジン
      • この層では、どこで宣言されているかによって分類される。
          1. ウェブサイト
          1. ユーザー
          1. ブラウザー
          • 各ブラウザーが持つデフォルトのスタイルシート。
      1. 詳細度
      • この層ではルールの詳細度が見られる。5つに分類される。
          1. style属性
          • HTMLのstyle属性が最も高い詳細度となる。
          1. @layer
          1. idセレクター
          • #idセレクターが該当する。
          1. classセレクター, 擬似クラスセレクター, 属性セレクター
          • .class:hover[type="text"]などが該当する。
          1. 要素セレクター、擬似要素セレクター
          • diva::beforeなどが該当する。
      • *>のようなセレクターは詳細度に影響しない。
      1. 順序
      • 最後の層では、順番が決め手になる。
      • 後方にあるものが前方にあるものを上書きする。
  • The cascade  |  web.dev
    • web.devにも詳細な説明がある。
  • CSSのカスケードの仕様を読むのがいい。