CSS Spezifitätsregeln funktionieren nicht?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Die Spezifizität berechnet sich anhand der Selektoren, die miteinander kombiniert werden (wobei auch hier nicht nur die Anzahl eine Rolle spielt, sondern auch der Selektortyp). Es gibt Online-Tools, die dir bei der Berechnung helfen können (Beispiel).

In deinem Fall handelt es sich bei der zweiten Regel nur um eine Aufzählung von verschiedenen Selektoren, die sich die gleichen Properties teilen. Die Spezifizität zum ersten Selektor unterscheidet sich nicht, daher zählt die Reihenfolge.


HeinzFiction123 
Beitragsersteller
 13.02.2024, 12:17

okay vielen Dank für die Antwort. Wenn ich das richtig verstehe wäre dann

#id1#id2 { color: green; } -> zählt als 2 ID Selektoren

spezifischer als

#id1, #id2 { color: green; } -> zählt als 1 ID Selektor

oder ist das falsch? Der Online-Rechner sagt im zweiten Fall, dass man 0 ID-Selektoren hat.

0
regex9  13.02.2024, 14:37
@HeinzFiction123

Ja, im ersten Fall hast du einen Selektor, der sich aus zwei ID-Selektoren zusammensetzt und im zweiten Fall hast du zwei unterschiedliche (ID-)Selektoren.

Wenn man einmal sagen würde, das ein einzelner ID-Selektor die Wertung 3 hätte, wäre die Gesamtwertung für den ersten Fall 6 und für den zweiten Fall jeweils 3.

Somit hätte der erste Fall eine deutlich höhere Spezifität als Fall 2, wenn man einem HTML-Element mehrere IDs zuordnen könnte (das ist aber nicht erlaubt).

1

In deinem Beispiel hängt es von der Kaskade ab, sprich die letzte Regel überschreibt die vorher festgelegten Regeln. Die Spezifität ist die ja die selbe, da es keine verketteten Selektoren sind und es sich immer um einen ID Selektor handelt. Du hast lediglich mehrere Selektoren gruppiert um diesen Elementen die gleichen Eigenschaften zuzuweisen. Es ist weiterhin ein normaler Aufruf und sich halt der letzte durchsetzt, da dieser in der Kaskade an letzter Stelle festgelegt wurde.

Und unabhängig deiner Frage, sollte man in CSS möglichst ohne ID Selektoren arbeiten. Dadurch lassen sich bereits von vornherein gewisse Probleme vermeiden, die sich aufgrund der Spezifität ergeben können. Hinzukommt noch dass sich Klassen sowohl leicht weiterverwenden als auch erweitern lassen. Dadurch lässt sich wiederum einiges an Schreibarbeit einsparen und weniger Code reproduziert wird. Sprich gleichbleibende Eigenschaften in einer eigenen Hilfsklasse definiert werden.

Woher ich das weiß:Berufserfahrung – UI/UX Designer, Full-Stack Developer

HeinzFiction123 
Beitragsersteller
 13.02.2024, 12:23

okay, danke für die Antwort und auch den Tipp mit den ID-Selektoren, das wusste ich noch nicht :)

0

Bei CSS gilt immer der letzte Selektor.

Du überschreibst damit dann die Properties.

Woher ich das weiß:eigene Erfahrung