Sven Rautenberg: "Universaltag"

Beitrag lesen

Moin!

Falls ja, gibt es eine Vorschrift in welcher Reihenfolge der Browser dies zu interpretieren hat? Also wenn ich in css1 reinschreibe p { color:#ff0000;} und in css2 für einige seiten die Farbe auf schwarz ändern will und schreibe p {color:#000000;} müssen die dann in irgend einer speziellen Reihenfolge interpretiert werden?

Aber natürlich gibts eine Vorschrift. Ähnlich wie beim Fußball wird die Rangfolge, welche Formatierung Vorrang vor anderen hat, bestimmt durch den verwendeten Selektor (das Teil vor der geschweiften Klammer).

In Kurzform: Der Selektor mit den meisten Punkten in Kategorie A, B und C gewinnt setzt seine Formatierungen durch. Kategorie A ist die Zahl der IDs, Kategorie B ist die Zahl der Klassen, und Kategorie C ist die Zahl der HTML-Tags im Selektor.

#body #meta div#selected a.main:link span { color:red; }

Dieser Selektor enthält drei IDs (#body, #meta, #selected), zwei Klassen (.main und :link, Pseudoklassen werden wie Klassen behandelt) und drei HTML-Tags (div, a und span). In Kategorien also: A=3, B=2, C=3.

span { color:white; background-color:black }

Dieser Selektor enthält nur einen HTML-Tag, also A=0, B=0, C=1.

Die Formatierung, die auf das Span wirkt, welches vom oberen Selektor getroffen wird, richtet sich also primär nach dem oberen CSS - zumindest, was die color-Angabe angeht. Die Textfarbe wird also rot. Die Hintergrundfarbe ist dort aber nicht definiert, der zweite Selektor kommt zum Zuge.

Und bei Punktegleichstand gilt das, was zuletzt definiert wurde.

Ausführlicher stehts in http://de.selfhtml.org/css/formate/kaskade.htm.

  • Sven Rautenberg