Hallo,
die Specs machen es einem hier schwer, alle relevanten Regeln zusammenzutragen, weil sie verteilt auf mehrere Specs sind.
Ganz wichtig scheint mir ein Satz aus dieser Quelle:
style attribute (...) In the cascade, these declarations are considered to have author origin and a specificity higher than any selector.
Entscheidend ist: "AUTHOR Origin". Das bedeutet für mich, dass ein !important in einem Style-Attribut durch ein !important mit hinreichender Spezifität auf den "unteren" Levels im User-Stylesheet überschrieben werden kann. Ich habe nur gerade keine Gelegenheit, das zu testen. Und ich weiß auch nicht, wieweit das die Welt interessiert; wie häufig sind User-Stylesheets?
Beim style-Attribut sollte also stehen:
Eigenschaften, die in einem style-Attribut festgelegt werden, gelten als vom Autor festgelegte Eigenschaften und haben eine höhere Spezifität als Eigenschaften, die in einer Stylesheet-Regel gesetzt werden. Eine als !important gekennzeichnete Eigenschaft in einem Autoren-Stylesheet kann durch !important im style-Attribut überschrieben werden.
Wichtig finde ich hier die Formulierung in einem Autoren-Stylesheet, damit wird klar, dass ein !important in einem User-Stylesheet immer Vorrang hat.
Die Grundreihenfolge ist also Browser - User - Autor, und auf der !important-Ebene kehrt sich diese Priorität um: Erst Autor, dann User. Vielleicht kann man das durch ein 6-stufiges Spezifitätstupel darstellen:
- Eigenschaft ist !important: 1, sonst 0
- Herkunft ist style-Attribut: 1, sonst 0
- ID
- Attribut, Klasse
- Typ, Pseudoelement
- Herkunft: 0=Browser, 1=User (nicht important), 2=Autor, 3=User (important)
Und erst dann, wenn sich hierüber kein Vorrang feststellen lässt, kommt die zeitliche Reihenfolge der Deklaration ins Spiel.
Stimmt das so?
Rolf
sumpsi - posui - clusi