IE各版本CSS Hack(兼容性处理)语法速查表
为了兼容IE各个版本,需要在CSS中添加额外的代码,比如以前常用的_width。之所以工作,是因为浏览器会忽略不能解析的样式规则,因此举个例子来说,把_width写在width下面,对于非IE浏览器会解析到width,而对于IE6来说,会用_width覆盖前面的width规则,从而达到针对IE6浏览器的兼容。对于IE其他版本(6~11),也存在同样的兼容性处理方法。虽然本站不对IE做特别的兼容性测试,基本上只支持Chrome/FF/Edge/Safari,但有时候客户项目会有这方面需求,下面是一个速查表:
div { property:value\0; /* ie 8/9*/ property:value\9\0; /* ie 9*/ *property:value; /* ie 7*/ _property:value; /* ie 6*/ }
IE 6
* html .ie6 {property:value;}
or
.ie6 { _property:value;}
IE 7
*+html .ie7 {property:value;}
or
*:first-child+html .ie7 {property:value;}
IE 6 and 7
@media screen\9 { .ie67 {property:value;}}
or
.ie67 { *property:value;}
or
.ie67 { #property:value;}
IE 6, 7 and 8
@media \0screen\,screen\9 { .ie678 {property:value;}}
IE 8
html>/**/body .ie8 {property:value;}
or
@media \0screen { .ie8 {property:value;}}
IE 8 Standards Mode Only
.ie8 { property /*\**/: value\9 }
IE 8,9 and 10
@media screen\0 { .ie8910 {property:value;}}
IE 9 only
@media screen and (min-width:0\0) and (min-resolution: .001dpcm) { // IE9 CSS .ie9{property:value;}}
IE 9 and above
@media screen and (min-width:0\0) and (min-resolution: +72dpi) { // IE9+ CSS .ie9up{property:value;}}
IE 9 and 10
@media screen and (min-width:0\0) { .ie910{property:value\9;} /* backslash-9 removes ie11+ & old Safari 4 */}
IE 10 only
_:-ms-lang(x), .ie10 { property:value\9; }
IE 10 and above
_:-ms-lang(x), .ie10up { property:value; }
or
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { .ie10up{property:value;}}
IE 11 (and above..)
_:-ms-fullscreen, :root .ie11up { property:value; }