Nächstes Beispiel:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>CSS-Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
#p i { color:red; }
</style>
</head><body>
<p id="p"><i style="color:blue">Text</i></p>
</body>
</html>Hier wird der Text (fälschlicherweise ?) in blau dargestellt. Ich hatte immer gedacht das CSS-Eigenschaften innerhalb eines Elementes immer die höchste Priorität genießt (das denken wohl auch alle Browser), die Spezifikation sagt aber in dem obigen Kontext etwas anderes. Dort steht, das CSS-Eigenschaften innerhalb eines style-Attributes sich verhalten als ob sie per ID-Selektor am Ende aller anderen Regeln steht und eine Spezifität von 100 besitzt. Das 2. Beispiel entspricht also im Prinzip dem 1. Beispiel und der Text müsste in roter Farbe erscheinen.
Habe ich etwas falsch verstanden oder übersehen ?
Die Übersetzung, die Du da verwendet hast, bezieht sich auf CSS2. Mittlerweile aktuell ist aber CSS2.1, und dort wurde anscheinend die Berechnung der Spezifität geändert: [link]http://www.w3.org/TR/CSS21/cascade.html#specificity[/link] Es gibt jetzt vier Stellen für die Berechnung, und style-Attribute zählen 1000.
Liebe Grüße
Frederik