- aktualisiert:
- 05.10.2008
- erstellt:
- 07.02.2007
CSS-Hacks
Eine beliebte Methode, dem IE separate CSS-Informationen zukommen zu lassen, sind sog. CSS-Hacks. Dabei werden Fehler in der CSS-Interpretation ausgenutzt, um bestimmte Browser gezielt anzusprechen.
Der Star-HTML-Hack
* html #wrap { background:red;}
Das html
-Element als Wurzelelement kann nie von einem weiteren Element eingeschlossen werden. Standardkonforme Browser ignorieren daher den Selektor * html
.
Internet Explorer bis einschließlich Version 6 liest diesen Selektor ein, die zugehörigen CSS-Angaben sind nur für diese Browser sichtbar.
CSS-Hack für IE 7 – Star-Plus-HTML-Hack
Der IE 7 im Standards-Mode liest den Star-HTML-Hack nicht mehr ein. Mit einer Modifikation lässt er sich ebenfalls gezielt ansprechen:
*+html #wrap { background:red;}
Mit dem Nachbarselektor würde ein Element angesprochen, das sich in der Dokumenthierarchie »neben« dem html
-Element befände – was ebenfalls nicht möglich ist.
Standardkonforme Browsern ignorieren deshalb diesen Selektor.
IE 6 und älter kennt den Nachbarselektor nicht und liest die Angabe ebenfalls nicht ein.
Da das »Funktionieren« der CSS-Hacks von Browserfehlern abhängt, ist das Risiko groß, dass unbeabsichtigt ein falscher Browser auf diese Angaben reagiert. [Beim Star-plus-HTML-Hack für IE 7 kann es z.B. zu Problemen mit bestimmten opera-Versionen kommen.]
Die zuverlässigste Methode, Angaben wirklich nur für IEs sichtbar zu machen, sind Conditional Comments.