Zum Inhalt springen

CSS-Spezifitätsrechner

Geben Sie einen Selektor pro Zeile ein; kommagetrennte Listen werden pro Selektor aufgeteilt. Ungültige Selektoren werden markiert, Ebenen oder !important entscheiden trotzdem.

Läuft lokal in deinem Browser
· :where() · :is() · :not() · :has() · A-B-C
SELECTOR INPUT
CASCADE MAP
COPY REPORT

So vergleichen Sie die Spezifität von CSS-Selektoren

Jeder Selektor wird mit den drei Zählern der Spezifikation bewertet: A für ID-Selektoren, B für Klassen, Attribute und Pseudoklassen, C für Typselektoren und Pseudoelemente. Die drei Beispiele zeigen die Form des Ergebnisses: #app .card:hover > h2 ergibt 1-2-1, :where(.theme) .card:is(.featured, #hero) ergibt 1-1-0 und main article[data-kind="docs"]::before ergibt 0-1-3.

Die Selektoren werden mit dem Parser des Browsers geprüft und im Tab bewertet; es wird nichts hochgeladen. Die Zeile über der Karte nennt die Anzahl der gelesenen Selektoren und den stärksten; der Kopierblock wiederholt jede Bewertung als Klartext.

  1. Tippen oder fügen Sie Selektoren ein, einen pro Zeile. Eine Zeile mit einer kommagetrennten Liste wird in eine Zeile pro Selektor aufgeteilt, sodass eine eingefügte Liste nie zu einer einzigen Bewertung addiert wird.
  2. Klicken Sie auf Selektoren analysieren, oder tippen Sie weiter: die Karte wird bei jedem Tastendruck neu aufgebaut.
  3. Lesen Sie die Kaskadenkarte – jede Zeile zeigt die A-B-C-Bewertung, einen Balken relativ zum stärksten Selektor und ein Etikett: Höchste Spezifität, A-B-C oder Ungültiger Selektor, wenn der Browser die Syntax ablehnt.
  4. Aktivieren Sie Nach höchster Spezifität sortieren, um die Zeilen absteigend zu ordnen; Selektoren mit gleicher Bewertung behalten ihre Eingabereihenfolge.
  5. Nutzen Sie Bericht kopieren für die A-B-C-Zeilen als Klartext oder Zurücksetzen, um die drei Beispiele zurückzuholen und die Sortierung auszuschalten.

Was die A-B-C-Zahlen zählen – und was nicht dazugehört

Was die drei Zahlen zählen

A zählt ID-Selektoren wie #app. B zählt Klassenselektoren (.card), Attributselektoren ([data-kind="docs"]) und Pseudoklassen (:hover, :focus-visible, :nth-child(2n+1)). C zählt Typselektoren (main, article, h2) und Pseudoelemente (::before, ::selection). Der Universalselektor * trägt zu keiner Spalte bei.

Funktionale Pseudoklassen folgen der Spezifikation: :where() zählt null, während :is(), :not(), :has() und die of-Liste von :nth-child() mit ihrem schwersten Argument bewertet werden – deshalb ist :is(.featured, #hero) eine ID wert. ::part() und ::slotted() zählen je als ein Pseudoelement, das Argument darin zählt nicht.

Kommalisten, ungültige Selektoren und die Kaskade

Eine kommagetrennte Liste in einer Zeile wird als das behandelt, was sie ist: mehrere Selektoren. a, b wird zu zwei Zeilen mit je 0-0-1. Jede Zeile wird zuerst mit dem Parser des Browsers geprüft; was er ablehnt – ein einzelner Kombinator, ein dreifacher Doppelpunkt – bleibt gelistet, wird als Ungültiger Selektor markiert und fällt aus dem Stärksten-Urteil heraus, denn ein ungültiger Selektor erreicht die Kaskade nie.

Die Bewertung beantwortet eine Frage: Wenn zwei dieser Selektoren dasselbe Element treffen, welche Deklaration gewinnt über das Gewicht. Ebenen, !important, Inline-Stile, Reihenfolge und Scope-Nähe können die Arithmetik trotzdem überstimmen; eine niedrigere Bewertung in einer früheren @layer kann gewinnen.

Lokale Verarbeitung und Grenzen

Der ganze Vergleich läuft im Tab, die Selektoren werden nirgendwohin gesendet. Ein festes Zeilenlimit gibt es nicht; Karte, Urteilszeile und Kopierblock werden beim Tippen gemeinsam neu aufgebaut.

Das Werkzeug vergleicht Text, es wendet Ihr Stylesheet nicht an: nichts wird gegen ein Dokument gematcht, und die Zahlen sind die Gewichte der Spezifikation, keine Vorhersage des berechneten Stils. Für eine visuelle Kontrolle führen Sie den Selektor im Inspektor des Browsers auf der echten Seite aus.

Zuletzt verwendet: