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

IE8的css hack \9 使用說(shuō)明

  發(fā)布時(shí)間:2010-03-06 11:13:17   作者:佚名   我要評(píng)論
關(guān)注過(guò)IE8的css hack的人相信大家都在使用這個(gè)hack,就是“\9”的css hack

首先感謝“丸子”提供的這個(gè)IE8的css hack;
關(guān)注過(guò)IE8的css hack的人相信大家都在使用這個(gè)hack,就是“\9”的css hack:

.test{ 
color:#000000; /* FF,OP支持 */ 
color:#0000FF\9; /* 所有IE瀏覽器(ie6+)支持 ;但是IE8不能識(shí)別“*”和“_”的css hack;所以我們可以這樣寫(xiě)hack */ 
[color:#000000;color:#00FF00; /* SF,CH支持 */ 
*color:#FFFF00; /* IE7支持 */ 
_color:#FF0000; /* IE6支持 */ 
}

包括我自己也是使用這種的,這是我前段時(shí)間整理的《主流瀏覽器的一些CSS hack》。
很多人再研究color:#0000FF\9;中的為什么IE6-IE8支持“\9”寫(xiě)法,和它的原理,我只是個(gè)工程師,不是科學(xué)家,我不懂為什么和它的真正原理,真的!很慚愧!
昨天在某個(gè)群里也看到部分前端工程師或網(wǎng)頁(yè)重構(gòu)師勢(shì)利的一面,同樣的一個(gè)解決方案,大公司有名的前端工程師或網(wǎng)頁(yè)重構(gòu)師寫(xiě)的東西都追捧,而小公司沒(méi)名氣的前端工程師或網(wǎng)頁(yè)重構(gòu)師寫(xiě)的解決方案卻被反問(wèn):“css有這種寫(xiě)法嗎?看來(lái)你連最基本的css的幾個(gè)屬性和屬性值都沒(méi)搞懂;就算你解決了問(wèn)題你寫(xiě)的css也是不規(guī)范的,就是規(guī)范你跟我講講你解決方案的原理;”同樣的一個(gè)解決方案,大公司有名的前端工程師或網(wǎng)頁(yè)重構(gòu)師寫(xiě)的這些反問(wèn)質(zhì)疑就全都沒(méi)了,拼命的去研究他這個(gè)解決方案,呵呵,我覺(jué)得那些人很可笑。還有很多人問(wèn)問(wèn)題只有得到大公司有名的前端工程師或網(wǎng)頁(yè)重構(gòu)師的肯定回答后才放心而又開(kāi)心的走了,甚至不留一句謝謝。當(dāng)然沒(méi)人(包括我)否認(rèn)大公司有名的前端工程師或網(wǎng)頁(yè)重構(gòu)師在業(yè)界的影響力,他們?yōu)榍岸撕椭貥?gòu)業(yè)界做的貢獻(xiàn)大家都是看得到的,只是覺(jué)得做人(特別是我們做技術(shù)的)不能太勢(shì)利,多一點(diǎn)技術(shù)共享和探討,多一點(diǎn)感激,學(xué)習(xí)成長(zhǎng)才是最重要的。我承認(rèn)我以前經(jīng)常罵人,罵人家SB,內(nèi)參國(guó)王說(shuō)的對(duì),罵人家SB就等于罵自己SB,我以前是很SB。不想探討就看著唄,罵人是不對(duì)的!
扯遠(yuǎn)了,回到IE8的CSS hack,講講color:#0000FF\9:
color:#0000FF\9的hack支持IE6-IE8(其他版本沒(méi)有測(cè)試),但是IE8不能識(shí)別“*”和“_”的css hack,所以我們可以使用

color:#0000FF\9; ;/*ie6,ie7,ie8*/
*color:#FFFF00;/*ie7*/
_color:#FF0000;/*ie6*/

來(lái)區(qū)分IE的各個(gè)版本。

說(shuō)明:在標(biāo)準(zhǔn)模式中

“-″減號(hào)是IE6專(zhuān)有的hack
“\9″ IE6/IE7/IE8/IE9/IE10都生效
“\0″ IE8/IE9/IE10都生效,是IE8/9/10的hack
“\9\0″ 只對(duì)IE9/IE10生效,是IE9/10的hack

測(cè)試代碼

<script type="text/javascript">  
    //alert(document.compatMode);  
</script>  
<style type="text/css">  
body:nth-of-type(1) .iehack{  
    color: #F00;/* 對(duì)Windows IE9/Firefox 7+/Opera 10+/所有Chrome/Safari的CSS hack ,選擇器也適用幾乎全部Mobile/Linux/Mac browser*/  
}  
.demo1,.demo2,.demo3,.demo4{  
    width:100px;  
    height:100px;  
}  
.hack{  
/*demo1 */  
/*demo1 注意順序,否則IE6/7下可能無(wú)法正確顯示,導(dǎo)致結(jié)果顯示為白色背景*/  
    background-color:red; /* All browsers */  
    background-color:blue !important;/* All browsers but IE6 */  
    *background-color:black; /* IE6, IE7 */  
    +background-color:yellow;/* IE6, IE7*/  
    background-color:gray\9; /* IE6, IE7, IE8, IE9, IE10 */  
    background-color:purple\0; /* IE8, IE9, IE10 */  
    background-color:orange\9\0;/*IE9, IE10*/  
    _background-color:green; /* Only works in IE6 */  
    *+background-color:pink; /*  WARNING: Only works in IE7 ? Is it right? */  
}  
  
/*可以通過(guò)javascript檢測(cè)IE10,然后給IE10的<html>標(biāo)簽加上class=”ie10″ 這個(gè)類(lèi) */  
.ie10 #hack{  
    color:red; /* Only works in IE10 */  
}  
  
/*demo2*/  
.iehack{  
/*該demo實(shí)例是用于區(qū)分標(biāo)準(zhǔn)模式下ie6~ie9和Firefox/Chrome的hack,注意順序 
IE6顯示為:綠色, 
IE7顯示為:黑色, 
IE8顯示為:紅色, 
IE9顯示為:藍(lán)色, 
Firefox/Chrome顯示為:橘色, 
(本例IE10效果同IE9,Opera最新版效果同IE8) 
*/  
    background-color:orange;  /* all - for Firefox/Chrome */  
    background-color:red\0;  /* ie 8/9/10/Opera - for ie8/ie10/Opera */  
    background-color:blue\9\0;  /* ie 9/10 - for ie9/10 */  
    *background-color:black;  /* ie 6/7 - for ie7 */  
    _background-color:green;  /* ie 6 - for ie6 */  
}  
  
/*demo3 
實(shí)例是用于區(qū)分標(biāo)準(zhǔn)模式下ie6~ie9和Firefox/Chrome的hack,注意順序 
IE6顯示為:紅色, 
IE7顯示為:藍(lán)色, 
IE8顯示為:綠色, 
IE9顯示為:粉色, 
Firefox/Chrome顯示為:橘色, 
(本例IE10效果同IE9,Opera最新版效果也同IE9為粉色) 
 
*/  
.element {  
    background-color:orange;    /* all IE/FF/CH/OP*/  
}  
.element {  
    *background-color: blue;    /* IE6+7, doesn't work in IE8/9 as IE7 */  
}  
.element {  
    _background-color: red;     /* IE6 */  
}  
.element {  
    background-color: green\0; /* IE8+9+10  */  
}  
:root .element { background-color:pink\0; }  /* IE9+10 */  
  
/*demo4*/  
/* 
 
該實(shí)例是用于區(qū)分標(biāo)準(zhǔn)模式下ie6~ie10和Opera/Firefox/Chrome的hack,本例特別要注意順序 
IE6顯示為:橘色, 
IE7顯示為:粉色, 
IE8顯示為:黃色, 
IE9顯示為:紫色, 
IE10顯示為:綠色, 
Firefox顯示為:藍(lán)色, 
Opera顯示為:黑色, 
Safari/Chrome顯示為:灰色, 
 
*/  
.hacktest{   
    background-color:blue;      /* 都識(shí)別,此處針對(duì)firefox */  
    background-color:red\9;      /*all ie*/  
    background-color:yellow\0;    /*for IE8/IE9/10 最新版opera也認(rèn)識(shí)*/  
    +background-color:pink;        /*for ie6/7*/  
    _background-color:orange;       /*for ie6*/  
}  
  
@media screen and (min-width:0){   
    .hacktest {background-color:black\0;}  /*opera*/  
}   
@media screen and (min-width:0) {   
    .hacktest { background-color:purple\9; }/*  for IE9/IE10  PS:國(guó)外有些習(xí)慣常寫(xiě)作\0,根本沒(méi)考慮Opera也認(rèn)識(shí)\0的實(shí)際 */  
}  
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {   
   .hacktest { background-color:green; } /* for IE10+ 此寫(xiě)法可以適配到高對(duì)比度和默認(rèn)模式,故可覆蓋所有ie10的模式 */  
}  
@media screen and (-webkit-min-device-pixel-ratio:0){ .hacktest {background-color:gray;} }  /*for Chrome/Safari*/  
  
/* #963棕色 :root is for IE9/IE10, 優(yōu)先級(jí)高于@media, 慎用!如果二者合用,必要時(shí)在@media樣式加入 !important 才能區(qū)分IE9和IE10 */  
/* 
:root .hacktest { background-color:#963\9; }  
*/  
</style>  

更多的介紹可以參考這篇文章:http://www.dbjr.com.cn/css/493362.html

至于為什么使用“\9”我真的不清楚原因,但是“丸子”測(cè)試了其他0-13的數(shù)字,最終結(jié)果如下:

2009-07-18_125722

其中:OP表示Opera,SA表示Safari,Ch表示Chrome;當(dāng)然你如果還有耐心可以測(cè)試“\14”,“\15”,“\16”。。。

從上面測(cè)試結(jié)果我們可以看出“\0”的寫(xiě)法只被IE8識(shí)別,ie6,ie7都不能識(shí)別,那么“\0”應(yīng)該是IE8的真正hack。主流瀏覽器的 CSS hack這樣更好一些:

復(fù)制代碼
代碼如下:

.test{
color:#000000; /* FF,OP支持 */
color:#0000FF\0; /* IE8支持*/
[color:#000000;color:#00FF00; /* SF,CH支持 */
*color:#FFFF00; /* IE7支持 */
_color:#FF0000; /* IE6支持 */
}

其中:OP表示Opera,SA表示Safari,Ch表示Chrome;
另外隨著google Chrome和Safari瀏覽器的流行,找google Chrome和Safari CSS hack的人也不少。我也找了一下:

復(fù)制代碼
代碼如下:

body:nth-of-type(1) .CH{
&nbsp;&nbsp; color: #FF0000;/* 這是專(zhuān)門(mén)針對(duì)Chrome和Safari的CSS hack */
}

相關(guān)文章

  • 淺談原生頁(yè)面兼容IE9問(wèn)題的解決方案

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

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

    每次設(shè)計(jì)一張網(wǎng)頁(yè)或一個(gè)表單,都被各種瀏覽器的兼容問(wèn)題傷透腦筋,尤其是IE家族。在做兼容性設(shè)計(jì)時(shí),我們往往會(huì)使用各種瀏覽器能識(shí)別的獨(dú)特語(yǔ)法進(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瀏覽器兼容性問(wèn)題的4種方案

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

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

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

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

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

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

最新評(píng)論