Thomas Luethi: Style-Attribute, !important, Specificity

Beitrag lesen

Hallo,

Die Ränder sind aber immernoch da, ich habe die nämlich mit style formatiert :-(

Das soll Dir eine Lehre sein.

Mach alle style-Attribute weg.
Die sind fast so schaedlich wie FONT und Konsorten.
Und sie werden zum "Klotz am Bein", wenn man etwas zentral aendern will.

Denn sie sind staerker als (fast) alles andere.
Nur mit !important kann man sie z.T. uebersteuern.
http://www.w3.org/TR/REC-CSS2/cascade.html#important-rules
Das ist aber Zwaengerei, und nicht im Sinne von !important.

p.rotc3 { color:red; background-color:yellow; }
p.rotc4 { color:red !important; background-color:yellow; }

<p class="rotc3">Dieser Text ist in Mozilla 1.2.1 rot</p>
<p class="rotc3" style="color:blue;">Dieser Text ist in Mozilla 1.2.1 blau</p>
<p class="rotc4" style="color:blue;">Dieser Text ist in Mozilla 1.2.1 rot</p>

---

Zum Thema "Specificity" (Spezifizitaet, Gewichtung):
http://www.w3.org/TR/1998/REC-CSS2-19980512/cascade.html#specificity
http://www.w3.org/TR/CSS2/cascade.html#specificity
Errata zu CSS 2.0:
http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html#s-6-4-3
CSS 2.1:
http://www.w3.org/TR/CSS21/cascade.html#specificity

(Bitte an die CSS-Experten im Forum: Falls es noch aktuellere Infos zu
Specificity in CSS 2 gibt, bitte melden...)

Zukunftsmusik:
CSS 3.0 - Selectors
http://www.w3.org/TR/css3-selectors/#specificity
verweist fuer's style-Attribut aber an das Modul "Cascade and Inheritance"
http://www.w3.org/TR/css3-cascade/
Dort fand ich aber nichts zum Style-Attribut; fuer Specificity verweist
es zurueck an http://www.w3.org/TR/css3-selectors/

---

Der langen Rede kurzer Sinn: Ersetze style-Attribute durch Klassen oder IDs.

Selbst das ist oft gar nicht notwendig, weil man meist einen Verschachtelungs-Selektor
nehmen kann.
http://selfhtml.teamone.de/css/formate/zentrale.htm#verschachtelte_elemente

Gruesse,

Thomas