因为不一样厂商的流览器或某浏览器的不一样版本(如IE6-IE11,Firefox/Safari/Opera/Chrome等),对CSS的支持、解析不同,致使在不一样浏览器的环境中呈现出不一致的页面展示效果。这时,咱们为了得到统一的页面效果,就须要针对不一样的浏览器或不一样版本写特定的CSS样式,咱们把这个针对不一样的浏览器/不一样版本写相应的CSS code的过程,叫作CSS hack!css
因为不一样的浏览器和浏览器各版本对CSS的支持及解析结果不同,以及CSS优先级对浏览器展示效果的影响,咱们能够据此针对不一样的浏览器情景来应用不一样的CSS。html
CSS Hack大体有3种表现形式,CSS属性前缀法、选择器前缀法以及IE条件注释法(即HTML头部引用if IE)Hack,实际项目中CSS Hack大部分是针对IE浏览器不一样版本之间的表现差别而引入的。css3
CSS hack书写顺序,通常是将适用范围广、被识别能力强的CSS定义在前面。浏览器
通常状况下,咱们尽可能避免使用CSS hack,可是有些状况为了顾及用户体验实现向下兼容,不得已才使用hack。好比因为IE8及如下版本不支持CSS3,而咱们的项目页面使用了大量CSS3新属性在IE9/Firefox/Chrome下正常渲染,这种状况下若是不使用css3pie或htc或条件注释等方法时,可能就得让IE8-的专属hack出马了。使用hack虽然对页面表现的一致性有好处,但过多的滥用会形成html文档混乱不堪,增长管理和维护的负担。相信只要你们一块儿努力,少用、慎用hack,将来必定会促使浏览器厂商的标准愈来愈趋于统一,顺利过渡到标准浏览器的主流时代。抛弃那些陈旧的IE hack,必将减轻咱们编码的复杂度,少作无用功。编码