Zum Hauptinhalt springen

[Easy] 🏷️ Selektor-Gewichtung

1. Wie berechnet man die Gewichtung eines Selektors?

Wie berechnet man die Gewichtung eines Selektors?

Die Bestimmung der Priorität von CSS-Selektoren dient dazu, die Frage zu klären, welcher Stil letztendlich auf ein Element angewendet wird, wie im folgenden Beispiel:

<div id="app" class="wrapper">Welche Farbe?</div>
#app {
color: blue;
}

.wrapper {
color: red;
}

In diesem Fall wird das Ergebnis Blau sein, da hier zwei Selektoren angewendet werden: ID und class. Da die Gewichtung von ID größer als die von class ist, wird der Stil von class überschrieben.

Gewichtungsreihenfolge

inline style > ID > class > tag

Wenn in einem HTML-Abschnitt ein Inline-Stil direkt im Tag geschrieben ist, hat dieser standardmäßig die höchste Gewichtung und überschreibt die Stile aus der CSS-Datei, wie im Beispiel:

<div id="app" class="wrapper" style="color: #f00">Welche Farbe?</div>

In der normalen Entwicklung wird diese Schreibweise jedoch nicht verwendet, da sie schwer zu warten ist und leicht zu Stilkontaminationsproblemen führt.

Sonderfall

Wenn man tatsächlich auf einen Inline-Stil stößt, der nicht entfernt werden kann, und ihn über die CSS-Datei überschreiben möchte, kann !important verwendet werden:

<div id="app" class="wrapper" style="color: #f00">Welche Farbe?</div>
#app {
color: blue !important;
}

Natürlich ist es vorzuziehen, die Verwendung von !important möglichst zu vermeiden. Obwohl Inline-Stile ebenfalls !important hinzufügen können, ziehe ich persönlich diese Art der Stilschreibweise nicht in Betracht. Außerdem verwende ich, außer in Sonderfällen, keine ID-Selektoren und baue das gesamte Stylesheet grundsätzlich mit class auf.