欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

css hack之\9和\0就可能對(duì)hack IE11\IE9\IE8無效

  發(fā)布時(shí)間:2020-03-20 19:42:49   作者:webkaka   我要評(píng)論
每次設(shè)計(jì)一張網(wǎng)頁或一個(gè)表單,都被各種瀏覽器的兼容問題傷透腦筋,尤其是IE家族。在做兼容性設(shè)計(jì)時(shí),我們往往會(huì)使用各種瀏覽器能識(shí)別的獨(dú)特語法進(jìn)行hack,從而達(dá)到各種瀏覽器下顯示正常的目的

每次設(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)用起來,它并不湊效??聪旅娴膆tml代碼:

<!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也能讀了。

本文結(jié)論

對(duì)于如何hack IE8 IE9 IE11的問題,本文已經(jīng)給出了完美的解決方案。必須認(rèn)識(shí)兩點(diǎn),就是是否在meta聲明了IE=Edge屬性,這對(duì)hack的代碼寫法有巨大區(qū)別,\9和\0的用法也唯妙唯俏。

相關(guān)文章

  • 淺談原生頁面兼容IE9問題的解決方案

    這篇文章主要介紹了淺談原生頁面兼容IE9問題的解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起
    2020-12-16
  • 新版chrome瀏覽器設(shè)置允許跨域的實(shí)現(xiàn)

    這篇文章主要介紹了新版chrome瀏覽器設(shè)置允許跨域的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起
    2020-11-30
  • css hack之\9和\0就可能對(duì)hack IE11\IE9\IE8無效

    每次設(shè)計(jì)一張網(wǎng)頁或一個(gè)表單,都被各種瀏覽器的兼容問題傷透腦筋,尤其是IE家族。在做兼容性設(shè)計(jì)時(shí),我們往往會(huì)使用各種瀏覽器能識(shí)別的獨(dú)特語法進(jìn)行hack,從而達(dá)到各種瀏覽
    2020-03-20
  • css區(qū)分ie8/ie9/ie10/ie11 chrome firefox的代碼

    這篇文章主要介紹了css區(qū)分ie8/ie9/ie10/ie11 chrome firefox的代碼,需要的朋友可以參考下
    2020-03-20
  • 解決CSS瀏覽器兼容性問題的4種方案

    這篇文章主要介紹了解決CSS瀏覽器兼容性問題的4種方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)
    2020-02-28
  • 常見的瀏覽器兼容性問題(小結(jié))

    這篇文章主要介紹了常見的瀏覽器兼容性問題(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)
    2020-02-20
  • border-radius IE8兼容處理的方法

    這篇文章主要介紹了border-radius IE8兼容處理的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)
    2020-02-12
  • 淺談?dòng)龅降膸讉€(gè)瀏覽器兼容性問題

    這篇文章主要介紹了淺談?dòng)龅降膸讉€(gè)瀏覽器兼容性問題,詳細(xì)的介紹了幾種我遇到的問題和解決方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-26
  • base64圖片在各種瀏覽器的兼容性處理

    這篇文章主要介紹了base64圖片在各種瀏覽器的兼容性處理的相關(guān)資料,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-14
  • 對(duì)常見的css屬性進(jìn)行瀏覽器兼容性總結(jié)(推薦)

    這篇文章主要介紹了對(duì)常見的css屬性進(jìn)行瀏覽器兼容性總結(jié)(推薦)的相關(guān)資料,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-20

最新評(píng)論