IE7 では多くのバグが修正され、一部のセレクターのサポートが追加されたため、*html {} や html>body {} などの IE を非表示または表示するためのハックは IE7 では機能しなくなります。 CSS Hack は推奨されておらず、条件付きコメントは確実なフィルターですが、条件付きコメントは HTML 内でのみ表示できるため、CSS Hack は依然としてその役割を果たしています。 Nanobot は、IE7 向けのいくつかの CSS ハック、具体的には以下を発見しました:
>本文
html*
*+html
これら 3 つの記述方法のうち、最初の 2 つは不正な CSS 記述方法であり、標準準拠のブラウザでは無視されますが、IE7 ではそうは考えられません。 >bodyの場合は欠落しているセレクタをグローバルセレクタ*に置き換える、つまり*>bodyに処理することになりますが、この現象は>セレクタだけでなく+セレクタや~セレクタにも存在します。 html* の場合、html と * の間にスペースがないため、これも CSS 構文エラーですが、IE7 はこれを無視せず、ここにスペースがあると誤って認識します。 3 番目の *+html の場合、IE7 は html の前の DTD 宣言も要素であると認識するため、これら 3 つのメソッドのうち、このメソッドだけが正当な CSS 記述であり、バリデーターを通過できることを意味します。したがって、検証は著者が推奨するハックの使用法でもあります。
最後に、著者は最良の方法を提示しました:
IE 6 以前
html 要素を選択するには * html {} を使用します。
IE 7 以前
HTML 要素を選択するには *+html、* html {} を使用します。 7 のみ
**+html {} を使用して html 要素を選択します。
IE 7 および最新のブラウザのみ
html>body {} を使用して body 要素を選択します。
最新のブラウザでは使用できません。 IE 7)
html>/**/body {} を使用して
の body 要素を選択します。