這篇文章給大家分享的是有關(guān)css中\(zhòng)9和\0為什么可能hack IE11\IE9\IE8無效的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),潘集企業(yè)網(wǎng)站建設(shè),潘集品牌網(wǎng)站建設(shè),網(wǎng)站定制,潘集網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,潘集網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
每次設(shè)計(jì)一張網(wǎng)頁或一個(gè)表單,都被各種瀏覽器的兼容問題傷透腦筋,尤其是IE家族。在做兼容性設(shè)計(jì)時(shí),我們往往會(huì)使用各種瀏覽器能識(shí)別的獨(dú)特語法進(jìn)行hack,從而達(dá)到各種瀏覽器下顯示正常的目的。其中,我們用得最多莫屬于\9和\0了。\9和\0是hack IE8、IE9、IE11的獨(dú)特標(biāo)識(shí)。但是問題來了,\9和\0到底怎樣hack IE8、IE9、IE11這三個(gè)瀏覽器?這個(gè)問題一直困擾我很久,不過,今天我終于搞明白了,也獨(dú)創(chuàng)了一個(gè)能hack IE8、IE9、IE11這三個(gè)瀏覽器的代碼寫法模式,本文將與各位分享。
\9和\0為什么可能hack IE11\IE9\IE8無效?
可能很多人都略明白,\0是用來hack IE8、IE9、IE11的,而\9是用來hack IE9的。但有時(shí)你真正運(yùn)用起來,它并不湊效。看下面的html代碼:
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css實(shí)例_卡卡網(wǎng) webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 紅色 */ background-color:#0000FF\0; /* 藍(lán)色 */ background-color:#FFFF00\9; /* 黃色 */ } </style> </head> <body> <div class="content">IE8 IE9 IE11均顯示黃色</div> </body> </html>
測(cè)試地址:http://demo.jb51.net/html/ie-hack/ie-hack1.html
上例中,\9和\0就達(dá)不到hack 各IE瀏覽器版本的目的。不過我們把 /* 藍(lán)色 */ 和 /* 黃色 */ 這兩行調(diào)換,又會(huì)怎樣顯示呢?請(qǐng)看html代碼:
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css實(shí)例_卡卡網(wǎng) webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 紅色 */ background-color:#FFFF00\9; /* 黃色 */ background-color:#0000FF\0; /* 藍(lán)色 */ } </style> </head> <body> <div class="content">IE11顯示黃色,IE8 IE9 均顯示藍(lán)色</div> </body> </html>
測(cè)試地址:http://demo.jb51.net/html/ie-hack/ie-hack2.html
結(jié)果是,IE11顯示黃色,而IE8和IE9均顯示藍(lán)色。
上述兩個(gè)例子說明,IE8、IE9都能讀懂\9和\0標(biāo)識(shí),此兩標(biāo)識(shí)哪個(gè)寫在后面就以哪個(gè)為準(zhǔn),而IE11僅能讀懂\9標(biāo)識(shí)。
至此,我們能否根據(jù)上述結(jié)論來寫代碼來hack IE8、IE9和IE11三個(gè)瀏覽器?顯然是不可以的,至少你不可以hackIE8和IE9,僅能hackIE11。
如何hack IE8和IE9
那么,我們?nèi)绾稳ack IE8和IE9呢?這個(gè)就是問題的關(guān)鍵。
在此文 css區(qū)分ie8/ie9/ie10/ie11 chrome firefox的代碼 中提到,IE9以上瀏覽器可以讀懂此代碼:
/* IE9+ */ @media all and (min-width:0) { .divContent{ background-color:#eee; } }
我們用此代碼結(jié)合前面的代碼,是不是就可以hack IE8和IE11了?完整html代碼如下:
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css實(shí)例_卡卡網(wǎng) webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 紅色 */ background-color:#FFFF00\9; /* 黃色 */ background-color:#0000FF\0; /* 藍(lán)色 */ } /* IE9+ */ @media all and (min-width:0) { .content{ background-color:#000; /* 黑色 */ } } </style> </head> <body> <div class="content">IE11顯示黃色,IE8 顯示藍(lán)色,IE9顯示黑色。</div> </body> </html>
測(cè)試地址:http://demo.jb51.net/html/ie-hack/ie-hack3.html
至此,IE8、IE9、IE11的兼容性問題就解決了。
不過,還沒玩,因?yàn)?@media all and (min-width:0) 在 Chrome、Firefox、360等瀏覽器同樣有效。所以,上面代碼需要稍微修改下,在 @media all and (min-width:0) {} 里面的css語句同樣加上\0標(biāo)識(shí),表示這是屬于IE9的樣式。修改后的完整代碼如下:
<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css實(shí)例_卡卡網(wǎng) webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 紅色 */ background-color:#FFFF00\9; /* 黃色 */ background-color:#0000FF\0; /* 藍(lán)色 */ } /* IE9+ */ @media all and (min-width:0) { .content{ background-color:#000\0; /* 黑色 */ } } </style> </head> <body> <div class="content">IE11顯示黃色,IE8 顯示藍(lán)色,IE9顯示黑色。</div> </body> </html>
測(cè)試地址:http://demo.jb51.net/html/ie-hack/ie-hack4.html
至此,IE8、IE9、IE11的兼容性問題就完美解決了。
meta聲明屬性 IE=Edeg 后,IE8\IE9\IE11的兼容代碼
但是,如果網(wǎng)頁HTML代碼里聲明了Meta元件 IE=Edge,那么上面的代碼是不對(duì)的。
先看第一個(gè)html代碼:
<!DOCTYPE html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css實(shí)例_卡卡網(wǎng) webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 紅色 */ background-color:#0000FF\0; /* 藍(lán)色 */ background-color:#FFFF00\9; /* 黃色 */ } </style> </head> <body> <div class="content">IE11顯示藍(lán)色,IE8 IE9均顯示黃色</div> </body> </html>
測(cè)試地址:http://demo.jb51.net/html/ie-hack/ie-hack5.html
結(jié)果是,IE11顯示藍(lán)色,IE8 IE9均顯示黃色,并非三個(gè)瀏覽器都顯示黃色了。
這就說明,加了meta IE=Edge 這句,IE11不再能讀\9這個(gè)標(biāo)識(shí)。
我們?cè)倏慈缦麓a:
<!DOCTYPE html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css實(shí)例_卡卡網(wǎng) webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 紅色 */ background-color:#FFFF00\9; /* 黃色 */ background-color:#0000FF\0; /* 藍(lán)色 */ } </style> </head> <body> <div class="content">IE8 IE9 IE11 均顯示藍(lán)色</div> </body> </html>
測(cè)試地址:http://demo.jb51.net/html/ie-hack/ie-hack6.html
結(jié)果是,IE8 IE9 IE11 均顯示藍(lán)色,這說明了,IE8 IE9 IE11 均能讀懂\0這個(gè)標(biāo)識(shí)。
結(jié)合上面兩個(gè)例子,可以得出結(jié)論,加了meta IE=Edge 屬性后,IE8 IE9能同時(shí)讀懂\9和\0這兩個(gè)標(biāo)識(shí),而IE11僅能讀懂\0這個(gè)標(biāo)識(shí)。
所以,我們可以據(jù)此來hack出IE11。如下html代碼加以說明:
<!DOCTYPE html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css實(shí)例_卡卡網(wǎng) webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 紅色 */ background-color:#0000FF\0; /* 藍(lán)色 這個(gè)是給IE11的 */ background-color:#FFFF00\9; /* 黃色 這個(gè)是給IE8和IE9的 */ } </style> </head> <body> <div class="content">IE11顯示藍(lán)色,IE8 IE9均顯示黃色</div> </body> </html>
測(cè)試地址:http://demo.jb51.net/html/ie-hack/ie-hack7.html
這樣,我們?cè)儆蒙厦娴拇ahack出IE8和IE9就可以了。
如何hack IE8和IE9 ?還是前面那個(gè)hack IE8 IE9的關(guān)鍵代碼:
@media all and (min-width:0) {}
完整html代碼這樣寫:
<!DOCTYPE html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>hack IE8/IE9/IE11_css實(shí)例_卡卡網(wǎng) webkaka.com</title> <style type="text/css"> .content{ width:400px;height:50px;color:#ccc; background-color:#FF0000; /* 紅色 */ background-color:#0000FF\0; /* 藍(lán)色 這個(gè)是給IE11的 */ background-color:#FFFF00\9; /* 黃色 這個(gè)是給IE8和IE9的 */ } /* IE9+ */ @media all and (min-width:0) { .content{ background-color:#000\9; /* 黑色 這個(gè)是給IE9的 */ } } </style> </head> <body> <div class="content">IE11顯示藍(lán)色,IE8顯示黃色,IE9顯示黑色</div> </body> </html>
測(cè)試地址:http://demo.jb51.net/html/ie-hack/ie-hack8.html
特別注意,@media all and (min-width:0) {} 里面的樣式要加上 \9 ,表明這是給IE9的,不然Chrome和Firefox、360等瀏覽器都可以讀,并且本例meta聲明了IE=Edge屬性的IE11也能讀了。
感謝各位的閱讀!關(guān)于“css中\(zhòng)9和\0為什么可能hack IE11\IE9\IE8無效”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
新聞標(biāo)題:css中\(zhòng)9和\0為什么可能hackIE11\IE9\IE8無效
文章地址:http://www.rwnh.cn/article6/jscdog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、Google、網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、網(wǎng)站制作、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)