兼容性问题

在网站设计制作中由于不同的浏览器对CSS样式的解析方法不一样,从而造成了网页兼容问题。针对不同浏览器写不同CSS样式,这个过程称为css hack。  

大家都知道在目前ie浏览器的市场份额是最高的,其次就是火狐和chrome浏览器,可以说解决网页兼容问题就是针对这三款浏览器。  

为什么浏览器对css的解析不同?那么我将以那个浏览器最为标准呢?这是因为浏览器软件开发中存在的技术缺陷。一般来说火狐浏览器和chrome对css的解析是正确的,而ie则存在一些bug,我们总不能以一个错误的标准去修正我们的行为。所以我们首先用火狐或者google chrome浏览器来将网页的css样式设置好,然后对ie的各版本设置css兼容。  

ie的各个版本中,低于ie6的版本几乎没有什么人在用,可以将其忽略,那么我们设置css浏览器兼容的对象就集中在ie6~ie9。我们可以通过以下方式来分别对不同浏览器设置css:  

1、条件注释  

在</head>标记之前插入只对ie浏览器适用的条件注释代码。  

1<!--[if lt IE 7]>版本小于IE7将看到这行<![endif]-->  
2<!--[if lte IE 7]>版本小于或等于IE7将看到这行<![endif]-->  
3<!--[if IE 7]>版本如果是IE7将看到这行<![endif]-->  
4<!--[if gt IE 7]>版本大于IE7将看到这行<![endif]-->  
lt(小于)、gt(大于)、lte(小于或等于)、gte(大于或等于)  
实例代码:  
1<!--[if IE 6]>  
2<style type="text/css">  
3 /* 针对IE6定义的样式 */  
4</style>  
5<![endif]-->  

   

2、css hack  

针对特定版本的ie写css样式,以下是各版本ie的css hack写法列表:  

Hack Example IE6(S) IE6(Q) IE7(S) IE7(Q) IE8(S) IE8(Q)   
* *color Yes Yes Yes Yes No Yes   
+ +color Yes Yes Yes Yes No Yes   
- -color Yes Yes No No No No   
_ _color Yes Yes No Yes No Yes   
# #color Yes Yes Yes Yes No Yes   
\0 color\0 No No No No Yes No   
\9 color\9 Yes Yes Yes Yes Yes Yes   
!important color:blue !important;color:green; No No Yes No Yes No   


这里S代表standard标准模式,Q代表Quirks怪异模式  

实例代码:  

1  
2  
3  
4  
5  
6  

 .box {  
    background: gray; /* 基本的 */  
    background: pink\9; /* IE 8 及低于IE8版本 */  
    *background: green; /* IE 7 及低于IE7版本 */  
    -background: blue; /* IE 6 */  
}  
   

3、针对google chrome浏览器的css hack:  

1  
2  
3  

 @media screen and (-webkit-min-device-pixel-ratio:0) {  
/ *  针对Google Chrome、Safari 3.0、Opera 9 的CSS样式 * /  
}  
   

4、针对firefox浏览器的css hack:  

1  
2  
3  

 @-moz-document url-prefix(){  
/ *  针对firefox的CSS样式 * /  

}

制定浏览器的ie版本即可

在html页面加上

< meta http-equiv = "X-UA-Compatible" content = "IE=EmulateIE7" >
< meta http-equiv = "X-UA-Compatible" content = "IE=8" >

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值