CSS-Spezifizitätsrechner

Berechnen Sie die Spezifizität eines beliebigen CSS-Selektors. Vergleichen Sie zwei Selektoren, verstehen Sie, welche Regel gewinnt, und lernen Sie das Spezifizitätsbewertungssystem.

Load a preset into Selector A

Specificity Scoring

ID selectors — (a)

#header, #nav

Class / attr / pseudo-class — (b)

.btn, [type=text], :hover

Type / pseudo-element — (c)

div, p, h1, ::before

Universal selector (*), combinators, and :where() contribute 0 specificity.

So verwenden Sie CSS-Spezifizitätsrechner

  1. 1Geben Sie einen CSS-Selektor in das Eingabefeld ein.
  2. 2Sehen Sie den Spezifizitätswert nach ID, Klasse und Element aufgeschlüsselt.
  3. 3Geben Sie optional einen zweiten Selektor ein, um zu vergleichen, welcher gewinnt.
  4. 4Verstehen Sie die Cascading-Regeln für Ihre Selektoren.
ZenovayAnalytics

Sehen Sie, wer gerade auf Ihrer Seite ist.

  • Besucher-Tracking in Echtzeit
  • Datenschutz zuerst, kein Cookie-Banner
  • In zwei Minuten eingerichtet
Zenovay entdecken

Häufig gestellte Fragen

Wie wird CSS-Spezifität berechnet?
CSS-Spezifität wird als Tripel (a, b, c) berechnet: a = Anzahl der ID-Selektoren (#id), b = Anzahl der Klassen-Selektoren (.class), Attribut-Selektoren ([attr]) und Pseudo-Klassen (:hover), c = Anzahl der Typ-Selektoren (div, p) und Pseudo-Elemente (::before). Inline-Stile haben Spezifität (1,0,0,0) – über allen Stylesheet-Regeln. !important überschreibt alle Spezifität. Universal-Selektor (*), Kombinatoren (+, >, ~, Leerzeichen) und :is()/:not() fügen keine Spezifität hinzu.
Welcher Selektor gewinnt bei einem Konflikt?
Der Selektor mit höherer Spezifität gewinnt. Wenn die Spezifitäten gleich sind, gewinnt die Regel, die später im Stylesheet erscheint (Quellenreihenfolge). Zum Vergleich: (1,0,0) schlägt (0,9,9), weil IDs mehr wiegen als jede Anzahl von Klassen. Der Vergleich ist nicht arithmetisch – er ist lexikografisch: vergleichen Sie zuerst (a), dann (b), dann (c). Ein ID schlägt immer jede Anzahl von Klassen.
Welche Spezifität haben :is(), :not() und :where()?
:is() und :not() nehmen die Spezifität ihres spezifischsten Arguments: :is(#id, .class) hat Spezifität (1,0,0), weil #id das spezifischste Argument ist. :where() hat immer null Spezifität, egal welche Argumente – nützlich für Utility-Klassen, die Sie leicht überschreiben möchten. :not() selbst trägt null bei, aber das Argument innen trägt normal bei.
Wie beeinflusst !important die Spezifität?
!important überschreibt alle Spezifität für die Eigenschaft, auf die es sich bezieht. Es ändert jedoch nicht den Spezifitäts-Score. Zwei Deklarationen mit !important werden normal nach Spezifität verglichen. Best Practice: vermeiden Sie !important. Wenn Sie ein Third-Party-Stylesheet überschreiben müssen, versuchen Sie stattdessen, die Spezifität zu erhöhen. Verwenden Sie !important nur für Utility-Klassen, die niemals überschrieben werden sollten, wie .visually-hidden oder .sr-only.
Welche Spezifität haben Inline-Stile?
Inline-Stile (style="color: red") haben die höchste Spezifität jeder Selektor-basierten Regel, geschrieben als (1,0,0,0) in der 4-teiligen Notation, die Inline enthält. Kein Selektor in einem Stylesheet kann einen Inline-Stil ohne !important überschreiben. Dies ist der Grund, warum CSS-Frameworks häufig Inline-Stile vermeiden – sie sind zu schwer zu überschreiben. Verwenden Sie stattdessen CSS-Benutzervariablen oder Klassen für wartbaren Code.