@@Heinz:
nuqneH
"ID-Selektoren haben eine höhere Spezifität als Attribut-Selektoren. In HTML beispielsweise ist der Selektor #p123 spezifischer als [ID=p123, was die Kaskade betrifft."]
Was bedeutet das?
Das bedeutet, dass bei
#p123 { background: red }
[id="p123"] { background: green }
das Element* mit der ID "p123" roten Hintergrund bekommt, nicht grünen. Weil der ID-Selektor speziFISCHer ist als der Attributselektor.
Hingegen würden bei
.foo { background: red }
[class="foo"] { background: green }
alle Elemente* der Klasse "foo" grünen Hintergrund bekommen, weil der Klassenselektor lediglich eine andere Schreibweise für den class-Attributselektor ist und bei mehreren gleich spezifischen Selektoren der letztere gewinnt.
(Zumindest aus CSS-Sicht gibt es keinen Unterschied. AFAIK haben Browser Klassenselektoren besonders implementiert. '.foo' sollte performanter sein als '[class="foo"]'.)
Qapla'
* Der Unterschied zwischen Einzahl und Mehrzahl ist nicht willkürlich.
„Perfektion ist nicht dann erreicht, wenn es nichts mehr hinzuzufügen gibt, sondern wenn man nichts mehr weglassen kann.“ (Antoine de Saint-Exupéry)