css常用hack技巧

1.针对IE的注释语句:lt,gt,lte,gte分别是小于,大于,小于等于,大于等于。注意,注释时,IE 和其对应的浏览器版本中间有空格。

<!--[if lt IE 9]>
<link href="http://www.cnblogs.com/src/main/webapp/assets/styles/ieHack.css" rel="stylesheet" type="text/css" />
<![endif]-->

2._property:这个只有IE6可以识别,非常有用。

body { _border:1px solid red; /*only for IE6*/}

3.*property:IE6,7都识别:

.box { display:inline-block; *display:inline;*zoom:1; /*for IE6,7*/}

4.选择器hack:

* html .box { color:red; /*only for IE6*/ }
*+html .box { color:red;/*only for IE7*/ }

以上hack都是针对IE的,IE8,9的hack不稳定,所以此处不介绍。

更具体的css hack 详见:css浏览器hack 或者本人建立的映射(http://jsfiddle.net/xmlovecss/D8eJn/

此处提出一个问题,请考虑,如果需要针对所有浏览器设置box宽度,而对IE6不设置宽度,如何去写hack?使用高级选择器即可。

答案参考如下:

html>body .box { width:200px; }

而这么写,就很坑爹了:

.box { width:200px;_width:auto; }

另外,使用条件注释语句,并把全局针对IE的hack整理成css文件,是推荐的做法。(但是,这里存在一个问题,当某天,我不需要支持IE6时候,我得一个一个页面的去掉IE条件注释)

对于私有页面的样式,修复IE bug则不必使用IE注释语句。

hack会让css变得不干净,给后期维护清理带来麻烦。能不用hack就尽量不用hack。

规避hack技巧:

  • 尝试使用其它css解决方案
  • 更换html结构

更全面的browser hack list: http://browserhacks.com/

posted @ 2013-01-07 18:41  xmlovecss  阅读(235)  评论(0编辑  收藏  举报