簡(jiǎn)單CSS hack:區(qū)分IE6、IE7、IE8、Firefox、Opera
廣告:
簡(jiǎn)單CSS hack:區(qū)分IE6、IE7、IE8、Firefox、Opera
方法一:
跨瀏覽器的網(wǎng)頁設(shè)計(jì)一直是讓人很頭疼的問題,這不只是因?yàn)闉g覽器的版本眾多,還有一個(gè)重要的原因是相同瀏覽器的不同時(shí)期的版本也會(huì)有差異,甚至是在不同操作同臺(tái)上還會(huì)有不同。因此使CSS hack技術(shù)進(jìn)行瀏覽器區(qū)分是實(shí)現(xiàn)跨瀏覽器訪問一個(gè)好方法。CSS Hack技術(shù)有很多,具體可以查看:
本文據(jù)說的主要是通過“.”,“>”,“*”,“_”來區(qū)分。以下是本人對(duì)這四種符號(hào)的測(cè)試結(jié)果:
———————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在各瀏覽器中的表現(xiàn)是一致的,只有_property在IE6和IE7、IE8中有所區(qū)別。另外還要注意的,IE6是不支持!important的,而其他幾款瀏覽器都識(shí)別。
舉例:
要對(duì)想同的文字在不同瀏覽器中顯示不同的顏色可以使用:
color:brown!important;/*用于Opera、Firefox2、Firefox3等現(xiàn)代瀏覽器*/
>color:green!important;/*IE7、IE8可以識(shí)別該規(guī)則,因此它覆蓋掉了上一條規(guī)則*/
color:red;/*所有瀏覽器都可以識(shí)別,但是以上兩條規(guī)則有!important,所以這條規(guī)則被忽視;只有IE6認(rèn)識(shí)并覆蓋掉上兩條規(guī)則*/
color:brown !important;/*用于Opera、Firefox2、Firefox3等現(xiàn)代瀏覽器*/
>color:green !important;/*IE7、IE8可以識(shí)別該規(guī)則,因此它覆蓋掉了上一條規(guī)則*/
color:red;/*所有瀏覽器都可以識(shí)別,但是以上兩條規(guī)則有!important,所以這條規(guī)則被忽視;只有IE6認(rèn)識(shí)并覆蓋掉上兩條規(guī)則*/
因此這就實(shí)現(xiàn)了跨瀏覽器的表現(xiàn)問題。_property和*property也是一樣的。對(duì)于_property來說,只有IE6才能識(shí)別,因此可以用于單獨(dú)對(duì)IE6的設(shè)置中。
不過這里要注意書寫的順序:現(xiàn)在瀏覽器的寫法要寫在最前面,IE6的寫法要寫在最后面用于覆蓋,其他瀏覽器寫在中間。
方法二:
其實(shí)主要是瀏覽器:IE6/IE7/firefox下,各個(gè)對(duì)CSS代碼的解釋有區(qū)別,下邊轉(zhuǎn)載一篇HACK的文章,相當(dāng)實(shí)用。
區(qū)別IE6與FF:background:orange;*background:blue;
區(qū)別IE6與IE7:background:green !important;background:blue;
區(qū)別IE7與FF:background:orange; *background:green;
區(qū)別FF/IE7/IE6:background:orange;*background:green !important;*background:blue;
注:IE都能識(shí)別*標(biāo)準(zhǔn)瀏覽器(如FF)不能識(shí)別*
IE6能識(shí)別*,但不能識(shí)別 !important
IE7能識(shí)別*,也能識(shí)別!important
FF不能識(shí)別*,但能識(shí)別!important
另外再補(bǔ)充一個(gè),下劃線"_",
IE6支持下劃線,IE7和firefox均不支持下劃線。(推薦.我這只有這個(gè)有效!)
于是大家還可以這樣來區(qū)分IE6、IE7、firefox
: background:orange;*background:green;_background:blue;
* htmlp {color:#f00;}支持 IE6不支持FF IE7 IE8b
*+html p {color:#f00;}支持 IE7 IE8b不支持FF IE6
p {*color:#f00;}支持 IE7 IE6不支持FF IE8
注:不管是什么方法,書寫的順序都是firefox的寫在前面,IE7的寫在中間,IE6的寫在后面。
廣告: