首页 > 代码库 > CSS Hack
CSS Hack
一、css hack定义
由于不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。 这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。
这个针对不同的浏览器写不同的CSS code的过程,就叫CSS hack!
二、css hack原理及分类
由于不同的浏览器对CSS的支持及解析结果不一样,外加CSS中的优先级的关系,我们就可以根据这个来针对不同的浏览器来写不同的CSS。
1、CSS Hack大致有3种表现形式:
(1)类内部Hack:比如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",而firefox两个都不能认识,等。
(2)选择器Hack:比如 IE6能识别*html .class{},IE7能识别*+html .class{}或者*:first-child+html .class{},等。
(3)HTML头部引用(if IE)Hack:针对所有IE:<!--[if IE]><!--您的代码--><![endif]-->,针对IE6及以下版本:<!--[if lt IE 7]><!--您的代码--><![endif]-->,这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效。
书写顺序:一般是将识别能力强的浏览器的CSS写在前面。
三、css hack写法总结
IE hack
所有的ie浏览器都可识别\9
IE6 hack
_ 只有ie6能识别_
IE7 hack
* 只有ie6、ie7可以识别*
IE8 hack
只有ie8、ie9可以识别\0
IE9 hack
只有ie8、ie9可以识别\9\0
所以的浏览器都支持
在这里要解释一下,看到网上有关于ie6不支持!important,也有关于ie7不支持!important的说法,经过反复试验,感觉这样说都是不妥当的,应该说所有的浏览器都支持!important,关键是要写对顺序,详见CSS:!important,
一些CSS Hack由于浏览器存在交叉认识,所以需要通过层层覆盖的方式来实现对不同浏览器进行Hack的,所有书写顺序很重要。
最后举个例子来说明:
div{color:red; color:green\9;*color:blue;_color:yellow}
结果是:谷歌和火狐下是红色;ie8和ie9下是绿色;ie7下是蓝色;ie6下是黄色
CSS Hack
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。