Gunnar Bittersmann: Navigation mit Parallelogrammen

Beitrag lesen

@@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)