CSS Hack是什麼意思

來源:互聯網
上載者:User

標籤:

CSS hack由於不同的瀏覽器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,對CSS的解析認識不一樣,因此會導致產生的頁面效果不一樣,得不到我們所需要的頁面效果。 這個時候我們就需要針對不同的瀏覽器去寫不同的CSS,讓它能夠同時相容不同的瀏覽器,能在不同的瀏覽器中也能得到我們想要的頁面效果。 

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

>>>> CSS Hack的原理是什麼

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

CSS Hack大致有3種表現形式,CSS類內部Hack、選取器Hack以及HTML頭部引用(if IE)Hack,CSS Hack主要針對IE瀏覽器。   

類內部Hack:比如 IE6能識別底線"_"和星號" * ",IE7能識別星號" * ",但不能識別底線"_",而firefox兩個都不能認識。 

選取器Hack:比如 IE6能識別*html .class{},IE7能識別*+html .class{}或者*:first-child+html .class{}。

HTML頭部引用(if IE)Hack:針對所有IE:<!--[if IE]><!--您的代碼--><![endif]-->,針對IE6及以下版本:<!--[if lt IE 7]><!--您的代碼--><![endif]-->,這類Hack不僅對CSS生效,對寫在判斷語句裡面的所有代碼都會生效。   

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

>>>> 如何寫CSS Hack

比如要分辨IE6和firefox兩種瀏覽器,可以這樣寫: 
  
<style>   
div{ 
background:green; /* for firefox */   
*background:red; /* for IE6 */ (both IE6 && IE7)
}   
</style>   

我在IE6中看到是紅色的,在firefox中看到是綠色的。
   
解釋一下:   

上面的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;   

區別IE6與IE7:   
background:green !important;
background:blue;  
 
區別IE7與FF:   
background:orange; 
*background:green;  
 
區別FF,IE7,IE6:   
background:orange;
*background:green;
_background:blue;   
background:orange;
*background:green !important;
*background:blue;  
 
註:

IE都能識別*;標準瀏覽器(如FF)不能識別*;   
IE6能識別 !important 能識別*;   
IE7能識別*,不能識別!important;   
FF不能識別*,但能識別!important; 

瀏覽器優先順序別:FF<IE7<IE6,CSS hack書寫順序一般為FF IE7 IE6 

CSS Hack瀏覽器安全色一覽表

CSS Hack是什麼意思

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.