chensy's blog

CSS HACK

越来越多的浏览器出现,曾经的CSS HACK现在还能HACK吗? 不知道,所以我收集了网上一些常用的HACK,自己做了一下测试,记录下来,以方便查看。

HACK主要分为CSS选择器HACK、CSS属性HACK、IE条件注释HACK和JS判断HACK;各有优缺点,不必纠结于某一方式,具体问题具体分析。这里主要记录的是CSS选择器和属性HACK。

以下测试结果是在:Win7 64位系统,默认IE10浏览器,使用IE10下的IE789浏览器模式,使用IE6绿色版浏览器,使用Opera 12.15,使用Firefox 21,Safari 4,Google Chrome 28,进行测试的。如果有什么错误,请指正!

浏览器(绿色表示当前浏览器支持) CSS hack
IE6 _background-color:#38DB24;
IE67 *background-color:#38DB24 ;
IE67 +background-color:#38DB24 ;
IE67 #background-color:#38DB24;
IE67 background-color:#38DB24 !ie;
IE678910 background-color:#38DB24\9;
IE78910&Firefox&Opera&Chrome&Safari html>body .ie78910-all-hack
{ background-color: #38DB24 }
IE8910&Firefox&Opera&Chrome&Safari html>/**/body .ie8910-all-hack
{ background-color: #38DB24 }
IE8910&Opera background-color:#38DB24\0;
IE910 :root .ie910-hack
{ background-color:#38DB24\9; }
IE910 background-color:#38DB24\9\0;
IE910&Firefox&Opera&Chrome&Safari body:nth-of-type(1) .ie910-all-hack
{background-color:#38DB24 ;}
IE910&Firefox&Opera&Chrome&Safari @media all and (min-width: 0px)
{ .ie910-all-2-hack{ background-color:#38DB24 ;} }
IE910&Firefox&Opera&Chrome&Safari @media all and (min-width: 0px)
{ .ie910-all-3-hack{background-color:#38DB24 ;} }
IE910&Firefox&Opera&Chrome&Safari :root *> .ie910-all-4-hack
{ background-color:#38DB24 }
IE10 @media screen and (-ms-high-contrast: active),
(-ms-high-contrast: none)
{ .ie10-hack{background-color:#38DB24 ;} }
Firefox @-moz-document url-prefix()
{ .firefox-hack{background-color:#38DB24 ;} }
Chrome&Safari @media screen and (-webkit-min-device-pixel-ratio:0)
{.chrome-safari-hack{background-color:#38DB24 ;} }

其实,我对HACK不熟悉,也不太想去熟悉。与其去记那一堆难记的标记,倒不如多学习一些HTML5和CSS3的新标准。

虽然,现在老式的浏览器逐渐淘汰,但工作上难免遇到一些不得不去HACK的时候,所以才有了这篇文章。

原载于:chensy's blog

本文链接:http://chensy0203.github.com/posts/css-hack.html

如需转载请以链接形式注明原载或原文地址。

头像

chensy

Java Web开发工程师,前端爱好者,技术宅,现居广州