浏览器hack

浏览器hack

首先我们来了解下什么是浏览器hack,浏览器hack也有人叫做CSS hack。在Internet Explorer 6,Internet Explorer 7,360.,Mozilla Firefox等不同的浏览器下,对CSS解析的优先级不一样,也就是不同的浏览器对css的认识不一样,因此会导致生成的页面效果不一样,得不到我们所 需要的页面效果,或者效果有很大的差异。 这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。
  我们 知道了什么是hack,还得知道css hack的原理是什么,这样也有利于后面css hack编写过程。其实就是上面所提到的,由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系,来书写css hack,这对于认识不同浏览器的解析特性和解析优先级的了解,来写css hack代码就至关重要了。
  下面我们就将浏览器支持的不同符号总结:
  注:Ie6支持下划线,例如:_select. 
  有了上面浏览器支持的符号,离写出满意的css hack距离还很遥远,下面我在总结下,在处理css hack方面的一些技巧积累。
  1. div的垂直居中问题
  {marding:0 auto;padding:0 auto}
  2. div浮动ie文本产生3像素的bug
  左边对象浮动,右边采用外 的左边距来定位,右边对象内的文本会离左边有3px的间距。
  第一种方法是不让重复的内容放入一个div中。
  第二种是,如何重复的最后一行是li就加上

  • hidden

  如果是div就换成
hidden

  4. ie6。ie7下背景重复问题
  在相应的属性中加入:font-size:0px就可以。
  5. Form标签
  这个标签在ie中,会自动marging一些边距,而在ff中marging则是0,因此,如果想显示一直,可以{padding:0px;marging:0px}
  技巧的总结是经验的积累,也是一个漫长的过程,下面我对hack的管理分享:
  1. 如果没有必要,不要使用
  使用了hack后会带来后期很大的维护成本,个人觉得要是小于10px的差距,就没有必要去使用hack技术。
  2. 充分了解css和css hack技术
  要想写出比较完美的代码,必须充分了解css技术。
  3. 经常注释
  在XHTML中注释是个很好的习惯,不然代码乱成一团,到了后来就奔上不知道代码的逻辑性,没有重用性,阅读性和可维护性,二次开发性。
 
 
IE Hack

IE系列浏览器的hack大略如下:

  • _nowamagic:1px;-----------ie6
  • *nowamagic:1px;-----------ie7
  • nowamagic:1px\0;----------ie89
  • nowamagic:1px\9\0;--------ie9
  • :root nowamagic:1px;    ----ie9(实际情况可能ie9还是有问题,再用这种方式)

这样就基本上就可以兼容所有IE。


其中粉红色部分为属性hack,黄色部分为选择器hack,它们可以结合使用。此外Firefox和Chrome也有它们专有的hack,详细hack方式及使用示例如下:

Firefox 与 Chrome 的 Hack

Firefox:

1 @-moz-document url-prefix()    /*写在选择器外层时(只可写在此处):Firefox only*/

Chrome:

1 @media screen and (-webkit-min-device-pixel-ratio:0)    /*写在选择器外层时(只可写在此处):Chrome only*/

使用示例:

1 @-moz-document url-prefix()    /*Firefox*/
2 {
3     body
4     {
5         background-color:pink;
6     }
7 }

浏览器对css的解析是从前到后的,并且采用最后一个样式声明。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值