在這個瀏覽器百花爭鳴的時代,作為前端開發(fā)的我們?yōu)榱宋覀兤恋脑O(shè)計能適應(yīng)各個瀏覽器可為煞費苦心,主要體現(xiàn)在javascript和css上面。javascript我這次就不談了,先說說css。
為了適應(yīng)不同瀏覽器不同的版本(版本主要就ie來說),ie這朵奇葩現(xiàn)在我們要兼容6-9,它的10也快出來了。。。在ie下我們可以寫條件注釋來區(qū)分ie和其他瀏覽器,以及ie的版本,這些請大家自行g(shù)oogle。這篇文章主要討論的是css hack。下面廢話補多說了,直接上代碼
[html]代碼
07 | < title >Css Hack</ title > |
21 | background-color:blue; /*firefox*/ |
23 | background-color:red\9; /*all ie*/ |
25 | background-color:yellow\0; /*ie8*/ |
27 | +background-color:pink; /*ie7*/ |
29 | _background-color:orange; /*ie6*/ |
33 | :root #test { background-color:purple\9; } /*ie9*/ |
35 | @media all and (min-width:0px){ #test {background-color:black\0;} } /*opera*/ |
37 | @media screen and (-webkit-min-device-pixel-ratio:0){ #test {background-color:gray;} } /*chrome and safari*/ |
45 | < div id = "test" >test</ div > |
上面這段代碼大家可以直接copy出來,保存成html在各瀏覽器試試。下面我來分析下:
background-color:blue; 各個瀏覽器都認(rèn)識,這里給firefox用;
background-color:red\9;\9所有的ie瀏覽器可識別;
background-color:yellow\0; \0 是留給ie8的,但筆者測試,發(fā)現(xiàn)最新版opera也認(rèn)識,汗。。。不過且慢,后面自有hack寫了給opera認(rèn)的,所以,\0我們就認(rèn)為是給ie8留的;
+background-color:pink; + ie7定了;
_background-color:orange; _專門留給神奇的ie6;
:root #test { background-color:purple\9; } :root是給ie9的,網(wǎng)上流傳了個版本是 :root #test { background-color:purple\0;},呃。。。這個。。。,新版opera也認(rèn)識,所以經(jīng)筆者反復(fù)驗證最終ie9特有的為:root 選擇符 {屬性\9;}
@media all and (min-width:0px){ #test {background-color:black\0;} } 這個是老是跟ie搶著認(rèn)\0的神奇的opera,必須加個\0,不然firefox,chrome,safari也都認(rèn)識。。。
@media screen and (-webkit-min-device-pixel-ratio:0){ #test {background-color:gray;} }最后這個是瀏覽器新貴chrome和safari的。
好了就這么多了,特別注意以上順序是不可以改變的。css hack雖然可以解決個瀏覽器之間css顯示的差異問題,但是畢竟不符合W3C規(guī)范,我們平時寫css最好是按照標(biāo)準(zhǔn)來,這樣對我們以后維護(hù)也是大有好處的,實在不行再用。
如果給位看官有更好的css hack寫法或者本文有不妥之處,歡迎留言,第一次寫文章,請輕砸。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。