カテゴリー: 開発ツール

CSS詳細度計算ツール

サイト側で企画したツールツールが見つからない?

セレクタの詳細度をA-B-Cスコアで比較します

1つ以上のCSSセレクタを入力すると、ID・クラス・要素(A-B-C)の詳細度スコアを計算し、どのルールが優先されるかが一目でわかるように並べ替えて表示します。処理はすべてブラウザ内で完結します。

セレクタ詳細度(A-B-C)IDクラス・属性・疑似クラス要素・疑似要素
#nav .item > a:hover1-2-1121
.card.featured0-2-0020
button0-0-1001
*0-0-0000

このページの処理はすべてブラウザ内で行われます。アップロードは一切ありません。

このツールでできること

同じ要素を対象とする2つのCSSルールが競合したとき、勝つのは後に書かれた方ではなく詳細度の高い方です。詳細度は3つの数値で数えられます。IDセレクタの数を表すA、クラス・属性セレクタ・疑似クラスの数を表すB、要素セレクタ・疑似要素の数を表すCです。このツールは入力された各セレクタを解析します。:not()、:is()、:has()、そして詳細度が常にゼロになる:where()にも対応しており、推測に頼らずセレクタ同士を直接比較できるようA-B-Cスコアを表示します。

使い方

  1. 1行に1つずつ、「#nav .item > a:hover」のようにセレクタを入力します。
  2. 各セレクタのA-B-C詳細度スコアを確認します。
  3. 詳細度順に並べ替えて、競合したときにどのセレクタが優先されるかを確認します。

プライバシー

このツールはすべてブラウザ内で動作します。入力した内容がアップロード・保存・共有されることはなく、タブを閉じれば消えます。

よくある質問

入力したCSSはどこかにアップロードされますか。
いいえ。解析はページ内で動作するJavaScriptによって行われるため、非公開のスタイルシートに含まれるセレクタがデバイスの外に出ることはありません。
:not()や:is()、:has()はどのように採点されますか。
CSS仕様に従い、これらは引数の中で最も詳細度が高いものの値を採用します。一方、:where()は中身に関わらず常に詳細度ゼロとして扱われます。
インラインスタイルや!importantはこのスコアに影響しますか。
いいえ。このツールはセレクタのみを採点します。インラインのstyle属性や!importantは、A-B-Cの数値に加算されるのではなく、通常の詳細度そのものを完全に上書きします。