css的hack问题-测试记录

今天在被一位资深的前端工程师面谈以后,他提出页面为了兼容各种浏览器,不可避免的要写hack。在近半年的学习以来,接触hack问题微乎其微,对于页面样式的调整一直处于大差不差就过关的状态。hack的效果如何,一边学习一边记录。


1.CSS hack,为特定浏览器添加一段具有特殊字符标识的代码,结合代码的优先级与覆盖性,特定的浏览器识别hack代码,其他浏览器将丢弃无法解析的该段hack代码。


2.浏览器很多,但只要考虑主流的IE、FF火狐、chrome谷歌即可,市面上常见的其他浏览器,内核都是基于以上浏览器的。(百度出的结果,浏览器的核心大部分是品牌浏览器在研发。)


从图片可以看出,ie支持大部分特殊字符,其他主流浏览器不支持,opera很少支持。

4、常见的特殊符号:

①" - " 和 " _ ":兼容ie6(测了ie5,也识别,不过用ie5的几乎没有了吧!以下就不考虑ie5了…)

②" \9 ":兼容所有ie,包括ie6、ie7、ie8、ie9、ie10 。

③" * " :兼容 ie6和ie7 。

④" \0 ":兼容ie7以上的所有ie浏览器,包括ie8、ie9、ie10及opera部分支持(不清楚哪部分…)。

⑤" \9\0 ":ie8部分兼容,所以可以确定为对ie9、ie10兼容 。

⑥" \0\9 ":兼容ie7以上的所有ie浏览器,包括ie8、ie9、ie10 。

注:由上可以看出对于ie浏览器,ie6、7、8 、9、10( \9 ) -> ie6、7 (*)->ie6(- 和 _)。


7、!important符号:

     ie6不识别、ie7 、8、 9、 10识别、FF识别、谷歌识别。

eg:①识别ie6、7和FF:

background:red;

*background:blue;


②区别ie6和ie7:

background:blue !important;

background:red;

(对于识别!important的ie7,一行代码的优先级高于二行,虽然都会读取二行,但是ie6执行二行,ie7一行覆盖二行。)


③区别ie6和ie7和标准浏览器

1>background:red;  *background:blue;  _background:green;

2>background:red;  *background:blue !important;  *background:green;


综上:写css hack的顺序为:FF(标准浏览器)-> ie7 -> ie6。


6、区别ie和非ie浏览器:

     添加" \9 " hack代码,只有ie浏览器可以识别。


7、


----- 未完待续 -----

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值