You are here: 首頁 CSS語法專區 CSS對IE7, IE6, FireFox和其它不同瀏覽器的控制(轉)

飛朵啦學習手札

本網站建議使用Firefox2.0以上,或是使用Goole瀏覽器來瀏覽,並使用1024x768解析度來觀看.

CSS對IE7, IE6, FireFox和其它不同瀏覽器的控制(轉)

E-mail 列印 PDF
我們針對不同的瀏覽器開發出不同的CSS文件,一個針對IE,一個針對Firefox,一個針對其它所有類型的瀏覽。這樣,我們在設計時,就不用去考慮太 多,只要我這個CSS能在FF中正常顯示,我就不管IE下執行下怎麼樣了,同樣IE中正常的CSS,也不去管它在FF中會是顯示如何的亂。
    首 先,我們在HTML代碼裡要放入標籤,標籤裡先寫入默認要用到的CSS文件的位置,建議放IE中用到 的CSS文件,比如,這樣能避免在對方瀏覽器沒有開啟javascript的時候,無法判斷瀏覽器類型的時候,也能以90%以上人使 用的IE正常顯示。

把下面這段JS放在HEAD中
程式代碼 程式代碼


window.navigator.userAgent.indexOf後面是瀏覽器的類型,如果是Opera的話,還可以加一條if來判斷,用javascript 的條件判斷去寫吧,我這裡不多說了。

放好你的CSS的位置,試一下看看,是不是不同的瀏覽器分別調用了不同的CSS文件啊。爽!

第二種方法:

由於不同的瀏覽器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,對CSS的解析認識不一樣,因此會導致生成的頁面效果不一樣,得不到我們所需要的頁面效果。

  這個時候我們就需要針對不同的瀏覽器去寫不同的CSS,讓它能夠同時兼容不同的瀏覽器,能在不同的瀏覽器中也能得到我們想要的頁面效果。

  解決的辦法
  由於不同的瀏覽器對CSS的支持及解析結果不一樣,還由於CSS中的優先級的關係。我們就可以根據這個來針對不同的瀏覽器來寫不同的CSS。

  比如IE6能識別下劃線_和星號*,IE7能識別星號*,當不能識別下劃線_,而firefox兩個都不能認識。等等

  書寫順序,一般是將識別能力強的瀏覽器的CSS寫在後面。下面如何寫裡面說得更詳細些。

  比如要分辨IE6和firefox兩種瀏覽器,可以這樣寫:

  
  div{
   background:green; /* for firefox */
   *background:red; /* for IE6 */
  }
  
  
我在IE6中看到是紅色的,在firefox中看到是綠色的。

    div{ background:green; /* for firefox */   *background:red; /* for IE6 */ }
我在IE6中看到是紅色的,在firefox中看到是綠色的。


  解釋一下:

  上面的css在firefox中,它是認識不了後面的那個帶星號*的東東是什麼的,於是將它過濾掉,不予理睬,解析得到的結果是:div{background:green},於是理所當然這個div的背景是綠色的。

  在IE6中呢,它兩個background都能識別出來,它解析得到的結果是:div{background:green;background: red;},於是根據優先級別,處在後面的red的優先級高,於是當然這個div的背景顏色就是紅色的了。

  區分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 FF 
*
 √  √  ×
 !importan × √ √


  另外再補充一個,下劃線"_",
  IE6支持下劃線,IE7和firefox均不支持下劃線。

  於是大家還可以這樣來區分IE6,IE7,firefox
  : background:orange;*background:green;_background:blue;

  注:不管是什麼方法,書寫的順序都是firefox的寫在前面,IE7的寫在中間,IE6的寫在最後面。
最近更新 ( 週二, 14 四月 2009 09:58 )  
 

新增回應


驗證碼
更新