本文據說的主要是通過“.”,“>”,“*”,“_”來區分。以下是本人對這四種符號的測試結果:
———————IE6—— IE7——IE8——FF2——FF3— Opera9.5
>property—— Y—— Y—— Y—— N—— N—— N
.property—— Y—— Y—— Y—— N—— N—— N
*property—— Y—— Y—— Y—— N—— N—— N
_property—— Y—— N—— N—— N—— N—— N
我們可以看到>property、.property、*property在各瀏覽器中的表現是一致的,只有_property在IE6和IE7、IE8中有所區別。另外還要注意的,IE6是不支持!important的,而其他幾款瀏覽器都識別。
舉例:
要對想同的文字在不同瀏覽器中顯示不同的顏色可以使用:
- >color:green !important; /*IE7、IE8可以識別該規則,因此它覆蓋掉了上一條規則*/
- color:red; /*所有瀏覽器都可以識別,但是以上兩條規則有!important,所以這條規則被忽視;只有IE6認識並覆蓋掉上兩條規則*/
color:brown !important; /*用於Opera、Firefox2、Firefox3等現代瀏覽器*/
>color:green !important; /*IE7、IE8可以識別該規則,因此它覆蓋掉了上一條規則*/
color:red; /*所有瀏覽器都可以識別,但是以上兩條規則有!important,所以這條規則被忽視;只有IE6認識並覆蓋掉上兩條規則*/
不過這裏要注意書寫的順序:現在瀏覽器的寫法要寫在最前面,IE6的寫法要寫在最後面用於覆蓋,其他瀏覽器寫在中間。
區別IE6與FF: background:orange;*background:blue;
區別IE6與IE7: background:green !important;background:blue;
區別IE7與FF: background:orange; *background:green;
區別FF/IE7/IE6: background:orange;*background:green !important;*background:blue;
注:IE都能識別*標準瀏覽器(如FF)不能識別*
IE6能識別*,但不能識別 !important
IE7能識別*,也能識別!important
FF不能識別*,但能識別!important
另外再補充一個,下劃線"_",
IE6支持下劃線,IE7和firefox均不支持下劃線。(推薦.我這隻有這個有效!)
於是大家還可以這樣來區分IE6、IE7、firefox
: background:orange;*background:green;_background:blue;
* html p {color:#f00;} 支持 IE6 不支持FF IE7 IE8b
*+html p {color:#f00;} 支持 IE7 IE8b 不支持FF IE6
p {*color:#f00;} 支持 IE7 IE6 不支持FF IE8
注:不管是什麼方法,書寫的順序都是firefox的寫在前面,IE7的寫在中間,IE6的寫在後面。