關注過IE8的css hack的人相信你們都在使用這個hack,就是「\9」的css hack:css
.test{
color:#000000; /* FF,OP支持 */
color:#0000FF\9; /* 全部IE瀏覽器(ie6+)支持 ;可是IE8不能識別「*」和「_」的css hack;因此咱們能夠這樣寫hack */
[color:#000000;color:#00FF00; /* SF,CH支持 */
*color:#FFFF00; /* IE7支持 */
_color:#FF0000; /* IE6支持 */
}
包括我本身也是使用這種的,這是我前段時間整理的《主流瀏覽器的一些CSS hack》
不少人再研究color:#0000FF\9;中的爲何IE6-IE8支持「\9」寫法,和它的原理,我只是個工程師,不是科學家,我不懂爲何和它的真正原理,真的!很慚愧!
昨天在某個羣裏也看到部分前端工程師或網頁重構師勢利的一面,一樣的一個解決方案,大公司有名的前端工程師或網頁重構師寫的東西都追捧,而小公司沒名氣的 前端工程師或網頁重構師寫的解決方案卻被反問:「css有這種寫法嗎?看來你連最基本的css的幾個屬性和屬性值都沒搞懂;就算你解決了問題你寫的css 也是不規範的,就是規範你跟我講講你解決方案的原理;」一樣的一個解決方案,大公司有名的前端工程師或網頁重構師寫的這些反問質疑就全都沒了,拼命的去研 究他這個解決方案,呵呵,我以爲那些人很好笑。還有不少人問問題只有獲得大公司有名的前端工程師或網頁重構師的確定回答後才放心而又開心的走了,甚至不留 一句謝謝。固然沒人(包括我)否定大公司有名的前端工程師或網頁重構師在業界的影響力,他們爲前端和重構業界作的貢獻你們都是看獲得的,只是以爲作人(特 別是咱們作技術的)不能太勢利,多一點技術共享和探討,多一點感激,學習成長才是最重要的。我認可我之前常常罵人,罵人家SB,內參國王說的對,罵人家 SB就等於罵本身SB,我之前是很SB。不想探討就看着唄,罵人是不對的
扯遠了,回到IE8的CSS hack,講講color:#0000FF\9:
color:#0000FF\9的hack支持IE6-IE8(其餘版本沒有測試),可是IE8不能識別「*」和「_」的css hack,因此咱們可使用前端
color:#0000FF\9; ;/*ie6,ie7,ie8*/
*color:#FFFF00;/*ie7*/
_color:#FF0000;/*ie6*/
來區分IE的各個版本。
至於爲何使用「\9」我真的不清楚緣由,可是「丸子」測試了其餘0-13的數字,最終結果以下:
其中:OP表示Opera,SA表示Safari,Ch表示Chrome;固然你若是還有耐心能夠測試「\14」,「\15」,「\16」。。。
從上面測試結果咱們能夠看出「\0」的寫法只被IE8識別,ie6,ie7都不能識別,那麼「\0」應該是IE8的真正hack。主流瀏覽器的CSS hack這樣更好一些
瀏覽器
.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;前端工程師
轉載請註明轉自《IE8的css hack》學習