史上最全的css hack(ie6-9,firefox,chrome,opera,safari)

jopen 12年前發布 | 789 次閱讀 PrimeFaces Window 8.1 resp Bing.com 免費資源

      在這個瀏覽器百花爭鳴的時代,作為前端開發的我們為了我們漂亮的設計能適應各個瀏覽器可為煞費苦心,主要體現在javascript和css上面。javascript我這次就不談了,先說說css。

      為了適應不同瀏覽器不同的版本(版本主要就ie來說),ie這朵奇葩現在我們要兼容6-9,它的10也快出來了。。。在ie下我們可以寫條件注釋來區分 ie和其他瀏覽器,以及ie的版本,這些請大家自行google。這篇文章主要討論的是css hack。下面廢話補多說了,直接上代碼

<!DOCTYPE html>  
<html>  
<head>  
    
<title>Css Hack</title>  
    
<style>  
    #test   
    
{   
        width
:300px;   
        height
:300px;   
          
        background-color
:blue;      /*firefox*/
        background-color
:red\9;      /*all ie*/
        background-color
:yellow\0;    /*ie8*/
        +background-color
:pink;        /*ie7*/
        _background-color
:orange;       /*ie6*/
    
}  
    :root #test 
{ background-color:purple\9; }  /*ie9*/
    @media all and (min-width:0px)
{ #test {background-color:black\0;} }  /*opera*/
    @media screen and (-webkit-min-device-pixel-ratio:0)
{ #test {background-color:gray;} }  /*chrome and safari*/
    
</style>  
</head>  
<body>  
    
<div id="test">test</div>  
</body>  
</html>
</div> </div> </div> </strong></span></span> </div> </div> </div> </div> </strong></span></span></div> </span>      上面這段代碼大家可以直接copy出來,保存成html在各瀏覽器試試。下面我來分析下:
    background-color:blue; 各個瀏覽器都認識,這里給firefox用;</div>

    background-color:red\9;\9所有的ie瀏覽器可識別;

    background-color:yellow\0; \0 是留給ie8的,但筆者測試,發現最新版opera也認識,汗。。。不過且慢,后面自有hack寫了給opera認的,所以,\0我們就認為是給ie8留的;

    +background-color:pink; + ie7定了;

    _background-color:orange; _專門留給神奇的ie6;

    :root #test { background-color:purple\9; } :root是給ie9的,網上流傳了個版本是 :root #test { background-color:purple\0;},呃。。。這個。。。,新版opera也認識,所以經筆者反復驗證最終ie9特有的為:root 選擇符 {屬性\9;}

    @media all and (min-width:0px){ #test {background-color:black\0;} } 這個是老是跟ie搶著認\0的神奇的opera,必須加個\0,不然firefox,chrome,safari也都認識。。。

    @media screen and (-webkit-min-device-pixel-ratio:0){ #test {background-color:gray;} }最后這個是瀏覽器新貴chrome和safari的。


    好了就這么多了,特別注意以上順序是不可以改變的。css hack雖然可以解決個瀏覽器之間css顯示的差異問題,但是畢竟不符合W3C規范,我們平時寫css最好是按照標準來,這樣對我們以后維護也是大有好處的,實在不行再用。


    如果給位看官有更好的css hack寫法或者本文有不妥之處,歡迎留言,第一次寫文章,請輕砸。

原文地址:http://www.cnblogs.com/WuQiang/archive/2011/08/23/2150240.html
</span>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!