簡單CSS hack:區分IE6、IE7、IE8、Firefox、Opera

來源:互聯網
上載者:User

一、跨瀏覽器的網頁設計一直是讓人很頭疼的問題,這不只是因為瀏覽器的版本眾多,還有一個重要的原因是相同瀏覽器的不同時期的版本也會有差異,甚至是在不同操作同台上還會有不同。因此使CSS hack技術進行瀏覽器區分是實現跨瀏覽器訪問一個好方法。CSS Hack技術有很多,具體可以查看:

   本文據說的主要是通過“.”,“>”,“*”,“_”來區分。以下是本人對這四種符號的測試結果:
———————IE6——     IE7——IE8——FF2——FF3—     Opera9.5
>property——     Y——     Y——     Y——     N——     N——     N
.property——     Y——     Y——     Y——     N——     N——     N
*property——     Y——     Y——     N——     N——     N——     N
_property——     Y——     N——     N——     N——     N——     N

我們可以看到>property、.property、*property在各瀏覽器中的表現是一致的,只有_property在IE6和IE7、IE8中有所區別。另外還要注意的,IE6是不支援!important的,而其他幾款瀏覽器都識別。

舉例:
要對想同的文字在不同瀏覽器中顯示不同的顏色可以使用: color:brown !important;  /*用於Opera、Firefox2、Firefox3等現代瀏覽器*/  
>color:green !important;    /*IE7、IE8可以識別該規則,因此它覆蓋掉了上一條規則*/   
color:red;  /*所有瀏覽器都可以識別,但是以上兩條規則有!important,所以這條規則被忽視;只有IE6認識並覆蓋掉上兩條規則*/   

color:brown !important;    /*用於Opera、Firefox2、Firefox3等現代瀏覽器*/
>color:green !important;      /*IE7、IE8可以識別該規則,因此它覆蓋掉了上一條規則*/
color:red;    /*所有瀏覽器都可以識別,但是以上兩條規則有!important,所以這條規則被忽視;只有IE6認識並覆蓋掉上兩條規則*/
因此這就實現了跨瀏覽器的表現問題。_property和*property也是一樣的。對於_property來說,只有IE6才能識別,因此可以用於單獨對IE6的設定中。

不過這裡要注意書寫的順序:現在瀏覽器的寫法要寫在最前面,IE6的寫法要寫在最後面用於覆蓋,其他瀏覽器寫在中間。

二、其實主要是瀏覽器:IE6/IE7/firefox下,各個對CSS代碼的解釋有區別,下邊轉載一篇HACK的文章,相當實用。

區別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; 

三、最簡單的CSS Hack: 區分 IE6 / IE7 /IE8 /Firefox

  

.color{
background-color: #CC00FF; /*所有瀏覽器都會顯示為紫色*/
background-color: #FF0000\9; /*IE6、IE7、IE8會顯示紅色*/
*background-color: #0066FF; /*IE6、IE7會變為藍色*/
_background-color: #009933; /*IE6會變為綠色*/
}

上面的樣式解釋為順序是 ff、ie8、ie7、ie6顯示的結果:
用 FF 瀏覽, 顏色是紫色
用 IE8 瀏覽,顏色是紅色
用 IE7 瀏覽,顏色是藍色
用 IE6 瀏覽,顏色是綠色

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.