IE7 hat viele Fehler behoben und Unterstützung für einige Selektoren hinzugefügt, sodass Hacks zum Ausblenden oder Anzeigen von IE wie *html {} und html>body {} jetzt in IE7 nicht funktionieren. Obwohl CSS Hack nicht empfohlen wird und bedingte Kommentare ein narrensicherer Filter sind, können bedingte Kommentare nur in HTML angezeigt werden, sodass CSS Hack immer noch seine Berechtigung hat. Nanobot hat einige CSS-Hacks für IE7 entdeckt, insbesondere:
>body
html*
*+html
Von diesen drei Schreibmethoden sind die ersten beiden illegale CSS-Schreibmethoden und werden in standardkonformen Browsern ignoriert, IE7 glaubt dies jedoch nicht. Für > body wird der fehlende Selektor durch den globalen Selektor * ersetzt, d. Da zwischen HTML und * kein Leerzeichen für HTML * steht, handelt es sich ebenfalls um einen CSS-Syntaxfehler. IE7 ignoriert ihn jedoch nicht, sondern geht fälschlicherweise davon aus, dass hier ein Leerzeichen vorhanden ist. Für den dritten Typ *+html geht IE7 davon aus, dass die DTD-Deklaration vor HTML ebenfalls ein Element ist, daher wird HTML ausgewählt. Unter diesen drei Methoden ist nur diese Methode legales CSS-Schreiben, was bedeutet, dass sie den Validator passieren kann. Die Verifizierung ist daher auch eine vom Autor empfohlene Hack-Nutzung.
Schließlich gab der Autor den besten Weg:
IE 6 und niedriger
Verwenden Sie * html {}, um das HTML-Element auszuwählen
IE 7 und niedriger
Verwenden Sie *+html, * html {}, um das HTML-Element
auszuwählen Nur 7
Verwenden Sie **+html {}, um das HTML-Element auszuwählen.
Nur IE 7 und moderne Browser.
Verwenden Sie html>body {}, um das Body-Element auszuwählen IE 7)
Verwenden Sie html>/**/body {}, um das Body-Element auszuwählen
Spezifische Informationen finden Sie im Originaltext: