HACK就是只有特定的浏览器才能识别这段hack代码
一般来说,CSS hack
有三种表现形式:
CSS属性级Hack
CSS选择器级Hack
IE条件级Hack
- CSS 属性前缀
- IE6级以下版本生效 _
div{_color:red;}
该代码只在IE6及以下浏览器中才能被识别出来
- 仅IE6中生效 -
div{-color:black;}
该样式只在 ie6 中才能被识别
- IE7及其以下版本生效 *
该设置,IE7及其以下版本中都会生效:
div{*color:blue;}
如果是在选择器上设置,则只会在IE6中生效:
*html div { color: gold; }
- IE6/IE7 +
div{+color:blue;}
在IE6/IE7中生效
- IE8及以上浏览器 \0
在IE8/IE9/IE10/IE11中生效:
div { color: green\0; }
- IE6/IE7 *+
如果在类的属性上加,会在IE6/IE7都生效:
div { *+color: blue; }
如果在选择器上加,只会在IE7生效:
*+html div { color: black; }
- IE9/IE10 \9\0
div { color: orange\9\0; }
- CSS选择器前缀
- 只在IE6中生效:*
*html div { color: gold; }
- 只在IE7中生效:*+
*+html div { color: blue; }
- 在IE8中生效
@media \0screen {
div { color: orange; }
}
- 条件注释
- IE
<!--[if IE]> 所有IE中生效 <![endif]-->
- IE N (N 表示版本,下同)
<!--[if IE 7]> 只在IE7生效 <![endif]-->
- gt
<!--[if gt IE 6]> 在IE6以上生效 <![endif]-->
- it
<!--[if lt IE 6]> IE6以下可生效 <![endif]-->
- lte
<!--[if lte IE 6]> IE6及IE6以下可生效 <![endif]-->
- gte
<!--[if gte IE 6]> IE6及IE6以上可生效 <![endif]-->
- !
<!--[if ! IE 6]> 在IE6上不生效(非IE6生效) <![endif]-->
<!--[if ! IE]> 所有IE中都不生效(非IE生效) <![endif]-->
- &
<!--[if (gt IE 6)&(lt IE 8)]> IE6版本以上且IE8版本以下可生效 <![endif]-->
- |
<!--[if (IE 6)|(IE 7)]> IE6或IE7可生效 <![endif]-->