摘要:网站设计制作中由于不同的浏览器对CSS样式的解析方法不一样,从而造成了网页兼容问题。针对不同浏览器写不同CSS样式,这个过程称为csshack。大家都知道在目前ie浏览器的市场份额是较高的,其次就是火狐和chrome浏览器,可以说解决网页兼容问题就是针对这三款浏览器。
网站设计制作中由于不同的浏览器对CSS样式的解析方法不一样,从而造成了网页兼容问题。针对不同浏览器写不同CSS样式,这个过程称为csshack。大家都知道在目前ie浏览器的市场份额是较高的,其次就是火狐和chrome浏览器,可以说解决网页兼容问题就是针对这三款浏览器。
为什么浏览器对css的解析不同?那么我将以那个浏览器较为标准呢?这是因为浏览器软件开发中存在的技术缺陷。一般来说火狐浏览器和chrome对css的解析是正确的,而ie则存在一些bug,我们总不能以一个错误的标准去修正我们的行为。所以我们*先用火狐或者googlechrome浏览器来将网页的css样式设置好,然后对ie的各版本设置css兼容。
ie的各个版本中,0于ie6的版本几乎没有什么人在用,可以将其忽略,那么我们设置css浏览器兼容的对象就集中在ie6~ie9。我们可以通过以下方式来分别对不同浏览器设置css:
在</head>标记之前插入只对ie浏览器适用的条件注释代码。
1<!--[ifltIE7]>版本小于IE7将看到这行<![endif]-->
2<!--[iflteIE7]>版本小于或等于IE7将看到这行<![endif]-->
3<!--[ifIE7]>版本如果是IE7将看到这行<![endif]-->
4<!--[ifgtIE7]>版本大于IE7将看到这行<![endif]-->
lt(小于)、gt(大于)、lte(小于或等于)、gte(大于或等于)
实例代码:
1<!--[ifIE6]>
2<styletype="text/css">
3/*针对IE6定义的样式*/
4</style>
5<![endif]-->
2、csshack
针对特定版本的ie写css样式,以下是各版本ie的csshack写法列表:
HackExampleIE6(S)IE6(Q)IE7(S)IE7(Q)IE8(S)IE8(Q)
**colorYesYesYesYesNoYes
++colorYesYesYesYesNoYes
--colorYesYesNoNoNoNo
__colorYesYesNoYesNoYes
##colorYesYesYesYesNoYes
\0color\0NoNoNoNoYesNo
\9color\9YesYesYesYesYesYes
!importantcolor:blue!important;color:green;NoNoYesNoYesNo
这里S代表standard标准模式,Q代表Quirks怪异模式
实例代码:
.box{
background:gray;/*基本的*/
background:pink\9;/*IE8及0于IE8版本*/
*background:green;/*IE7及0于IE7版本*/
-background:blue;/*IE6*/
}
3、针对googlechrome浏览器的csshack:
@mediascreenand(-webkit-min-device-pixel-ratio:0){
/*针对GoogleChrome、Safari3.0、Opera9的CSS样式*/
}
4、针对firefox浏览器的csshack:
@-moz-documenturl-prefix(){
/*针对firefox的CSS样式*/
}