萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> DivCSS教程 >> 浏覽器兼容性與布局設計了解什麼是CSS hack?

浏覽器兼容性與布局設計了解什麼是CSS hack?

浏覽器兼容性與布局設計了解什麼是CSS hack?

由於不同的浏覽器,比如Internet Explorer 6,Internet Explorer 7,Mozilla

Firefox等,對CSS的解析認識不一樣,因此會導致生成的頁面效果不一樣,得不到我

們所需要的頁面效果。

這個時候我們就需要針對不同的浏覽器去寫不同的CSS,讓它能夠同時兼容不同的浏覽

器,能在不同的浏覽器中也能得到我們想要的頁面效果。

這個針對不同的浏覽器寫不同的CSS code的過程,就叫CSS hack,也叫寫CSS hack。

CSS Hack的原理是什麼
由於不同的浏覽器對CSS的支持及解析結果不一樣,還由於CSS中的優先級的關系。我

們就可以根據這個來針對不同的浏覽器來寫不同的CSS。

比如 IE6能識別下劃線_和星號*,IE7能識別星號*,當不能識別下劃線_,而firefox

兩個都不能認識。等等

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

些。

如何寫CSS Hack
比如要分辨IE6和firefox兩種浏覽器,可以這樣寫:

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

解釋一下:

上面的css在firefox中,它是認識不了後面的那個帶星號*的東東是什麼的,於是將它

過濾掉,不予理睬,解析得到的結果是:div{background:green},於是理所當然這個

div的背景是綠色的。


在IE6中呢,它兩個background都能識別出來,它解析得到的結果是:div

{background:green;background:red;},於是根據優先級別,處在後面的red的優先級

高,於是當然這個div的背景顏色就是紅色的了。

CSS hack:區分IE6,IE7,firefox區別不同浏覽器,CSS hack寫法:

區別IE6與FF:

background:orange;*background:blue;
background:orange;*background:blue;

區別IE6與IE7:

background:green !important;background:blue;
background:green !important;background:blue;

區別IE7與FF:

background:orange; *background:green;
background:orange; *background:green;

區別FF,IE7,IE6:

background:orange;*background:green !important;*background:blue;
background:orange;*background:green !important;*background:blue;

注:IE都能識別*;標准浏覽器(如FF)不能識別*;

IE6能識別*,但不能識別 !important,
IE7能識別*,也能識別!important;
FF不能識別*,但能識別!important;
 IE6 IE7 FF
* √ √ ×
!important × √ √


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

於是大家還可以這樣來區分IE6,IE7,firefox

div{: background:orange;  
*background:green;  
_background:blue;}
div{: background:orange;
*background:green;
_background:blue;}

copyright © 萬盛學電腦網 all rights reserved