比较常用的是只对IE进行hack,常见的写法有以下几种:
1. IE条件注释
<!-- [ if IE]>
<link href="ie.css" rel="stylesheet" type="text/css" />
<![endif]-->
还可只对某一IE版本或以下版本hack
2. html/body标签中写class hook
比如使用jQuery Browser Plugin后通过firefox浏览页面html被附加上这样的class
<html class="win firefox firefox3 gecko gecko1">
之后针对不同的浏览器(及版本)写hack
Google的某些产品使用的是此方法,比如Google Reader,只不过hook的对象为body标签而非html标签,详见/19
通过前后台生成hook皆可
CSS Hack
比如:
div{
color: black; /* all browsers */
color: red9; /* IE8 and below */
#color: green; /* IE7 and below */
.color: yellow; /* IE7 */
_color: blue; /* IE6 and below */
}
在实际项目中使用较多的是此方法,原因详见 /65#hack。当然,也可以第一种和第三种方法配合,方便通过验证
后记
如果不是为了pixel perfect,平时也用不到太多hack,hack多了非常令人恶心(think, there was an old lady who swallowed a fly)。
这是pixel perfect系列的最后一篇,面对“不可能完成的任务”,至少我们努力过了…
——————– 2010-3-22 补充 ——————–
最近在15+ Techniques And Tools For Cross Browser CSS Coding看到针对IE7 hack的.写法,补充一下:)