CSS hack
CSS hack:为解决浏览器兼容性问题,针对不同的浏览器写不同的CSS 代码的过程,就叫CSS Hack,hack主要针对IE浏览器
三种形式:
属性级hack:IE6识别_* ,IE7识别* ,FF两个都不识别
选择符级Hack:IE6识别*html ,IE7识别*+html或*:first-child+html
IE条件注释Hack(百度上可直接查到):
针对所有IE:<!–[if IE]><!–您的代码–><![endif]–>
针对IE6及以下版本:<!–[if lt IE 7]><!–您的代码–><![endif]–>
书写顺序:FF——IE7——IE6
常用的CSS hack
/*属性级hack*/
color:red; /* 所有浏览器可识别*/
_color:red; /* 仅IE6 识别 */
*color:red; /* IE6、IE7 识别 */ 同理: +color *+color [color
color:red9; /* IE6、IE7、IE8、IE9 识别 */
/* 选择符级Hack */
*html #demo { color:red;} /* 仅IE6 识别 */
*+html #demo { color:red;} /* 仅IE7 识别 */
body:nth-of-type(1) #demo { color:red;} /* IE9+、FF3.5+、Chrome、Safari、Opera 可以识别 */
head:first-child+body #demo { color:red; } /* IE7+、FF、Chrome、Safari、Opera 可以识别 */
:root #demo { color:red9; } /* 仅IE9识别 */
只对 IE6:*html 识别 _ * ,在同一选择器中不识别!important
只对 IE7:*+html 识别 * !important,不识别 _
只对 IE67:@media screen\9{...}
只对 IE8:@media \0screen {...}
只对 IE678:@media \0screen\,screen\9{body {...}
只对 IE8910:@media screen\0 {...}
只对 IE910:@media screen and (min-width:0\0) {...}
只对 IE10:@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {...}
FF:识别!important,不识别 * _
_ IE6专有hack
\9 IE678910的hack
\0 IE8910的hack
\9\0 IE910的hack