css hack的定义: css hack由于不同的浏览器,比如:IE6,IE7,Firefox等,对css夫人解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。这个时候我们就需要针对于不同的浏览器去写不同的css,让它能够同时兼容不同的浏览器,能在不同的浏览器中,也能得到我们想要的页面效果。
css kack怎样使用: css hack一般是利用浏览器的支持css的能力和bug来进行的。所以对浏览器的选择大致可以分为能力选择和怪癖选择(bug)。能力 通常指的是浏览器对css特性的支持度,而怪癖是指浏览器特有的一些bug.
css hack分类: css选择器hack、css属性hack、IE条件注释的hack
1. css 选择器hack: ie6能识别*html .class{},IE7 能识别*+html.class{}或者*:nth-child+html.class{}等
2. css属性hack: 比如IE6能识别下划线“ _ ”和星号" * ",IE7能识别" * ",但是不能识别下划线" _ ",而Firefox两个都不能识别。
3. IE条件注释hack
针对所有的IE: <!--[IF IE]><!-- code--><![endif]-->
针对IE6以及以下版本: <!--[if It IE 7><!--code--><![endif]-->
这类Hack不仅对css生效,对写在判断语句里面的所有的代码都会生效
书写顺序,一般是将识别能力强的浏览器的css写在前面。
建议: 尽量使用通用方法,减少css hack的使用,大规模的使用css hack会带来维护成本的提高,以及浏览器版本变化而带来类似的hack生效等问题