一般情况下,我都会兼顾IE 6.0 / IE 7.0 / firefox 2.0浏览器,下面是用的较频繁的CSS Hack技巧: 用的最广莫过于!imp 1、仅IE7与IE5.0可以识别 *+html select {…} 当面临需要只针对IE7与IE5.0做样式的时候就可以采用这个HACK。 2、仅IE7可以识别 *+html select {…!imp 当面临需要只针对IE7做样式的时候就可以采用这个HACK。 3、IE6及IE6以下识别 * html select {…} 这个地方要特别注意很多博客都写成了是IE6的HACK其实IE5.x同样可以识别这个HACK。其它浏览器不识别。 4、html/**/ >body select {…} 这句与上一句的作用相同。 5、仅IE6不识别,屏蔽IE6 select { display /*屏蔽IE6*/:none;} 这里主要是通过CSS注释分开一个属性与值,注释在冒号前。 6、仅IE6与IE5不识别,屏蔽IE6与IE5 select/**/ { display /*IE6,IE5不识别*/:none;} 这里与上面一句不同的是在选择符与花括号之间多了一个CSS注释。不屏蔽IE5.5 7、仅IE5不识别,屏蔽IE5 select/*IE5不识别*/ {…} 这一句是在上一句中去掉了属性区的注释。只有IE5不识别,IE5.5可以识别。 8、盒模型解决方法 selct {width:IE5.x宽度; voice-family :”\”}\”"; voice-family:inherit; width:正确宽度;} 盒模型的清除方法不是通过!imp 9、只有Opera识别 @media all and (min-width: 0px){ select {……} } 针对Opera浏览器做单独的设定。 以上都是写CSS中的一些HACK,这些都是用来解决局部的兼容性问题,如果希望把兼容性的内容也分离出来,不妨试一下下面的几种过滤器。这些过滤器有的是写在CSS中通过过滤器导入特别的样式,也有的是写在HTML中的通过条件来链接或是导入需要的补丁样式。 10、IE5.x的过滤器,只有IE5.x可见 @media tty { i{content:”\”;/*” “*/}} @imp }/* */ 11、IE5/MAC的过滤器,一般用不着 /*\*//*/ @imp /**/ -------------------------------------------------------------------- 12、IE的if条件Hack www.xxcss.com提供 <!--[if IE]> On <!--[if IE 5.0]> On <!--[if gt IE 5.0]> On <!--[if lt IE 6]> On <!--[if gte IE 6]> On <!--[if lte IE 7]> On ----------------------------------------------------------------- 你在写css时样式表加上浏览器标识符就行了,各浏览器区别如下: IE都能识别*,标准浏览器(如FF)不能识别*; IE6能识别*,但不能识别 !imp IE7能识别*,也能识别 !imp FF不能识别*,但能识别 !imp 例如style="*width:10px;!imp 这样在IE6下宽度为10px,在IE7下宽度时20px ----------------------------------------------------------------- 最新的CSS兼容方案,让你的样式完美兼容各大浏览器,这个方案主要是用来解决Safari的,Opear是在测试的时候顺带试了一下,结果发现竟然也行,所以顺便也解决了。 .e {/*FF OP*/ background-color: #FF0000 } html* .e{/*Sa IE7 OP*/ background-color:#FF00FF } *+html .e{ background-color:#000000;/*OP*/ *background-color:#0000FF;/*IE7*/ } * html .e{/*IE6*/ background-color:#00FFFF } 经FF2、OP9.21、OP9.10、Sa3.0.3(pc)、IE7、IE6测试通过,如果你在其他的浏览器版本上测试过,欢迎给我留言,把结果告诉我。 www.xxcss.com提供 需要注意的是:IE7对样式的解释跟DTD是有关,在没有DTD的时候,IE7是能读取IE6的hack的。 |