@@Peter:
nuqneH
PS.: Könnte ich das mit einer Browserweiche programmieren (so à la Version 2+ für den IE und Version 3 für alles was besser ist^^)?
Ja, aber wozu? Variante 2+ sieht im IE grottenschlecht aus.
Wenn du Stile nur für IE 7 angeben willst, dann so:
*+html selctor { property: value }
oder um ganz sicher zu gehen, dass nicht irgendein Uralt-Opera das in den falschen Hals kriegt:
*:first-child+html selctor { property: value }
Falls noch Bedarf besteht, IE < 7 zu unterstützen:
* html selctor { property: value }
Beispiel:
body { background: red }
*+html body { background: green }
* html body { background: blue }
Im IE ärgert man sich grün (IE 7) und blau (IE < 7); in anderen Browsern warmer Rot-Ton.
Erlärung:
'*+html
' selektiert alle 'html'-Elemente, die Nachfolger eines beliebigen anderen Elements sind. '* html
' selektiert alle 'html'-Elemente, die Nachfolger eines beliebigen anderen Elements sind. [CSS2 §5]
Das 'html'-Element ist aber das Wurzelelement eines jeden HTML-Dokuments, somit weder Nachfolger noch Nachfahre eines anderen Elements. Die Selektoren selektieren also: nichts – in anständigen Browsern. In IEs wirken sie trotzdem, und eben diesen Fehler kann man sich zunutze machen. “It’s a feature, not a bug.”
Qapla'
Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
(Mark Twain)