今天在修改CSS的時候,突然碰到要單獨Hack IE8的。當然,用注釋非常方便,只要添加相應的注釋就可以解決。但問題是,為了一句CSS寫多一個文件,或者在header上添加注釋,那顯然不是懶人的習慣做法。結論如下:

selector{
property:value; /* 所有瀏覽器 */
property:value\9; /* 所有IE瀏覽器 */
+property:value; /* IE7 */
_property:value; /* IE6 */
}

當然,注意順序。根據CSS的優先性,上面的寫法,分別針對Firefox、IE8、IE7和IE6顯示值。讓我們看看這個演示:


演示的CSS代碼如下:

p.ie{
height:60px;text-align:center;line-height:60px;border:1px dashed #bbb;background:#f7f7f7;font:15;
color:blue; // 所有瀏覽器
color:brown\9; // 所有IE瀏覽器
+color:red; // IE7
_color:green; // IE6
}

哈,事實就這么簡單。你看到的是那一句話呢?如果你多個瀏覽器都測試了,就會看到,顯示的文字和顏色是不同的。為什么?看看我的HTML中這個段落是這樣寫的:

<p class="ie">
<span style="display:block;display:none\9;">嘿嘿,小子竟然也用Firefox,藍色文字。</span>
<!--[if IE 8]>不錯不錯,挺先進的嘛,使用IE8呢!文字是褐色的。<![endif]-->
<!--[if IE 7]>你,IE7,紅色文字!<![endif]-->
<!--[if IE 6]>孩子,雖然顯示的是綠色文字,不過,IE6可不是好東西呢!<![endif]-->
</p>

對,就是IE條件注釋+CSS的結果。順路學一下IE條件注釋吧。不用再舉例了吧,一看就知道那個對那個了。