CSS Hack大致有3种表现形式,CSS类内部Hack、选择器Hack以及HTML头部引用(if IE)Hack,CSS Hack主要针对IE。
类内部Hack:比如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",而firefox两个都不能认识。等等
选择器Hack:比如 IE6能识别*html .class{},IE7能识别*+html .class{}或者*:first-child+html .class{}。等等
HTML头部引用(if IE)Hack:针对所有IE:<!--[if IE]><!--您的代码--><![endif]-->,针对IE6及以下版本:<!--[if lt IE 7]><!--您的代码--><![endif]-->,这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效。
书写顺序,一般是将识别能力强的浏览器的CSS写在后面。
类内部Hack具体写法:
_background-color:#CDCDCD; /* ie 6*/
*background-color:#dddd00; /* ie 7*/
background-color:red \0; /* ie 8/9*/
background-color:blue \9\0
选择器Hack 具体写法
:root #test { background-color:purple\9; } :root是给ie9的,
:root #test { background-color:purple\0;},ie9和新版opera,
@media all and (min-width:0px){ #test {background-color:black\0;} } 这个是老是跟ie抢着认\0的神奇的opera,必须加个\0,不然firefox,chrome,safari也都认识,
@media screen and (-webkit-min-device-pixel-ratio:0){ #test {background-color:gray;} }最后这个是浏览器新贵chrome和safari的。
另外,学习工作两个月的个人感觉:hack虽然方便省力,但是在学习网页布局的时候最好别用,先检查问题根源,还有做网页不到最后一步也尽量别用,因为可能会影响到后面的布局,或者以后再次修改的时候都会增添些麻烦。
最后祝大家开心学习,轻松工作!