devtools-hub

CSS Specificity Calculator

CSSセレクターの詳細度を (a,b,c) で即時計算・複数比較

CSS開発者向け

CSSセレクターを入力すると ID/クラス/要素 の内訳を (a,b,c) 形式で即時計算。最大8本のセレクターを並べて詳細度の高い順にランキング表示します。:where() の 0 加算や :is() / :not() の引数詳細度など最新 CSS も正確に処理。!important の検出バッジ付き。

広告

CSS Specificity Calculator

セレクターを入力すると詳細度 (a,b,c) をリアルタイムで計算します。

Specificity Reference
aID
#id
bClass / Attr / Pseudo-class
.class[attr]:hover
cElement / Pseudo-element
div::before

* → (0,0,0)  · :where() → 0  · :is() :not() :has() → 引数の最大詳細度

Features

  • セレクターを入力すると (a,b,c) の詳細度をリアルタイム計算
  • ID・クラス/属性/擬似クラス・要素/擬似要素を色分けバッジで表示
  • a/b/c それぞれを横バーでスケール表示(全セレクター中の最大値基準)
  • 最大8本を並べて詳細度降順に自動ランキング
  • !important を含む入力に警告バッジ
  • :where() は 0、:is()/:not()/:has() は引数の最大詳細度を正確に計算
  • サンプルセット(8本)をワンクリックで読み込み


CSS詳細度(Specificity)の仕組みと計算方法

CSSの詳細度(Specificity)はスタイルの優先度を決める重要な概念です。複数のセレクターが同じ要素を対象としている場合、詳細度の高いルールが適用されます。デバッグ時に「なぜスタイルが効かないのか」を素早く特定するために欠かせない知識です。

詳細度 (a,b,c) の計算ルール

詳細度は (a,b,c) の3つの数値で表されます。a はIDセレクター(#id)の数、b はクラスセレクター(.class)・属性セレクター([attr])・擬似クラス(:hover)の合計数、c は要素型セレクター(div, p)・擬似要素(::before)の合計数です。比較は左から順に行われ、a が大きいほど優先度が高くなります。例えば `#nav .item:hover span` は (1,2,1) です。

特殊なセレクターの詳細度

全称セレクター `*` の詳細度は (0,0,0) でどんなセレクターにも負けます。`:where()` は引数の詳細度に関わらず常に (0,0,0) として扱われます(スタイルのリセットや再利用しやすいユーティリティに有効)。一方、`:is()` と `:not()` は引数リスト内で最も高い詳細度を持つセレクターの値を使います。例えば `:is(#id, .class)` の詳細度はIDセレクターを基準とした (1,0,0) になります。

!important と詳細度の関係

`!important` はセレクターの詳細度を変えるわけではなく、詳細度の計算から外れた特別な優先度レイヤーに引き上げます。!importantが競合した場合は通常通り詳細度の高いほうが勝ちます。乱用するとデバッグが困難になるため、サードパーティのスタイルを上書きする最終手段として限定的に使うのが望ましいです。

CSSデバッグでの活用

スタイルが期待通りに適用されない場合、まずブラウザのDevToolsでどのルールが上書きされているかを確認します。上書きされているルールは取り消し線で表示されます。次にセレクターの詳細度を比較し、より高い詳細度のルールが存在しないかチェックします。CSS Specificity Calculatorを使えば複数のセレクターを並べて優先度を即座に視覚化できます。

広告

Related Tools

base64-studio

Base64 エンコード & デコード

開発者向けテキストエンコード

使ってみる →

BOOTH

JSON Studio

JSON フォーマッター & バリデーター

JSON開発者向けフォーマッター

使ってみる →

BOOTH

color-deck

カラーコード変換 & パレット保存

カラーデザイン開発者向け

使ってみる →

BOOTH

このツールを共有する