Innerhalb der CSS-Regeln für ein HTML-Dokument können Konflikte auftreten. Man spricht von einem Konflikt, wenn für eine Eigenschaft eines Elements Dokument mehrere verschiedene CSS-Deklarationen zutreffen. Konflikte können aus vielen Gründen entstehen - absichtlich oder auch nur zufällig:
h2
-Element sowohl durch den Id-Selektor als auch
durch den Elementselektor angesprochen:
See the Pen CSS – Konflikte – Selektoren 1 by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.
See the Pen CSS – Konflikte – Selektoren 2 by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.
See the Pen CSS – Konflikte – Mehrfachdefinition by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.
See the Pen CSS – Konflikte – Inline by Barbara Dörsam, HdM Stuttgart (@bdhdm) on CodePen.
Konflikte werden in CSS nach einer exakt vorgegebenen Prozedur, der Kaskade, aufgelöst, die immer ein eindeutiges Ergebnis hat. Der Browser führt sie für jede Eigenschaft eines Elements und für alle Elemente eines Dokuments nacheinander aus. Dabei gelten die folgenden Regeln:
Die CSS-Selektoren haben ihre eigene Spezifizität, d.h., eine eigene Wichtigkeit, nach der die Auswertung der CSS-Regeln erfolgt. Je spezifischer der Selektor ist, desto weniger Elemente in HTML wird er ansprechen und desto wichtiger sind die dafür definierten CSS-Regeln.
Folgende Spezifizität gilt für die bisher besprochenen Selektoren. Die Spezifizität und damit die Priorität der Stylevorgaben nimmt in der folgenden Liste von oben nach unten ab:
style
-Attribut in einem HTML-Element
definiert:
<h2 style="color: red">
#id01 {color:red;}
.blau {color:blue;}
h2 {color:red;}
h2 {color:blue; color: green}
CSS-Regeln können auch in unterschiedlichen Dateien definiert werden (inline, eingebettet, extern). Dadurch kann es leicht passieren, dass für ein Element mehrere, widersprüchliche Regeln definiert wurden. Deswegen werden Stylesheets kaskadierend ausgewertet: es gibt eine vordefinierte Reihenfolge, in der die Regeln ausgewertet werden.
Die folgende Hierarchie gilt für die bisher besprochenen Möglichkeiten der Stylesheet-Einbindung. Die Priorität der Stylevorgaben nimmt in der folgenden Liste von oben nach unten ab:
<link>
importierte externe Stylevorgaben