Hi,
man nehme:
#foo.bar { color: blue; }
#foo.qaz { color: red; }
Jeder anständige Browser wird einem <element id="foo" class="qaz"> die Textfarbe Rot geben - der IE (zumindest in Version 6) nicht. Tauscht man die Reihenfolge der Regeln, gibt es zwar roten Text, aber keinen blauen mehr. Es wird immer nur die erste Regel angewendet, keine der folgenden; wobei "andersartige" Regeln im späteren Verlauf des CSS-Codes anstandsfrei akzeptiert werden. Die Ursache scheint in der nicht-hierarchischen Verknüpfung von ID- und Klassenselektor zu liegen.
Ich bin schon öfter auf diesen Fehler gestoßen und konnte ihn bisher immer umgehen (z.B. durch "#baz .qaz"), was alledings eher zufällig durch die Struktur möglich war. Nun habe ich dummerweise den Fall, dass eine Reihe Klassen vorliegen, die mit verschiedenen Breiten versehen sind, die im Element #foo jeweils anders sein müssen - ich kann den Selektor also nicht ändern.
"Normalerweise" kann man den IE immer mit irgend welchen Spinnereien austricksen, etwa durch eine zusätzliche Regel zwischen den anderen, die nichts macht außer da zu sein und hübsch auszusehen. Hier gelingt mir das leider nicht. Ich finde im Netz auch keine Hinweise auf diesen Bug bzw. darauf, wie er zu beheben ist. Weiß jemand mehr?
Cheatah
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes