Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > Web前端 > CSS > 正文

如何解决css兼容性问题?css hack小技巧

时间:2015-04-08 10:01 来源:网络整理 作者:51ou.com 阅读:

在处理css兼容性问题时,碰到要单独Hack IE8的。

当然,用注释非常方便,只要添加相应的注释就可以解决,不过这样做的弊端也是很明显的,因此不建议这样。

结论:
 

selector{
property:value; /* 所有浏览器 */
property:value9; /* 所有ie浏览器 */
+property:value; /* ie7 */
_property

当然,注意顺序。
根据css的优先性,上面的写法,分别针对firefox、ie8、ie7和ie6显示值。让我们看看这个:
css代码:
 

p.ie{
height:60px;text-align:center;line-height:60px;border:1px dashed #bbb;background:#f7f7f7;font:15;
color:blue; // 所有浏览器
color:brown9; // 所有IE浏览器
+color:red; // IE7
_color:green; // IE6
}

html代码部分:
 

<body style="width:500px;margin:0 auto;">
<p class="ie">
<span style="display:block;display:none9;">嘿嘿,小子竟然也用Firefox,蓝色文字。</span>
<!--[if IE 8]>不错不错,挺先进的嘛,使用IE8呢!文字是褐色的。<![endif]-->
<!--[if IE 7]>你,IE7,红色文字!<![endif]-->
<!--[if IE 6]>孩子,虽然显示的是绿色文字,不过,IE6可不是好东西呢!<![endif]-->
</p>
</body>

注意,以下这些hack写法仅适用于XHTML1.0。如果没有在HTML最前加上:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""><html xmlns="">
那么效果将不一样!此外,这里所说的IE8,不是指IE8的兼容模式,因为IE8的兼容模式其实就是IE7。
区别IE6、7与FF/IE8:
 

background:blue;*background:orange;

显示效果:
IE 6/7:orange
FF/IE8:blue
原理:FF/IE8不支持*开头,而IE6/7都支持。

区别IE6与IE7/IE8/FF:
 

background:green;_background:blue;


显示效果:
IE7/8/FF:green
IE6:blue
原理:IE6支持下划线"_",IE7、8和firefox均不支持下划线。

区别FF/IE8和IE6/7:
 

background:orange;+background:green;-background:blue;
或者
background:orange;*background:green!important;*background:blue;

显示效果:
IE6:blue
IE7:green
FF/IE8:orange
原理:IE6能识别-,IE7能识别+,IE8和FF都不能识别+和-
IE8/FF都不识别*,IE7优先识别!important,IE6不能识别!important。

关于IE8的hacks:
 

.test{
color:/***/#00f9; /* IE8 only */
color:#00f9; /* 适用于所有IE版本 */
}
 

可同时区分IE8、IE7、IE6、Firefox的CSS hacks:
 

.test{
color:#000; /* Firefox */
color:/***/#00f9; /* IE8 */
*color:#f00; /* IE7 */
_color:#0f0; /* IE6 */
}
 

添加相应的注释解决兼容性问题

注释相应的Css文件:
 

复制代码 代码示例:

<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="css/IE6style.css" media="screen" />
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="css/IE7style.css" media="screen" />
<![endif]-->
<!--[if gte IE 8]>
<link rel="stylesheet" type="text/css" href="css/IE8style.css" media="screen" />
<![endif]-->

注释相应的Css 内容:
 

<!--[if ie 6]>
<style>
<!--
#warp{ padding-bottom:11px;}
-->
</style>
<![endif]-->
<!--[if ie 7]>
<style>
<!--
#warp{ padding-bottom:11px;}
-->
</style>
<![endif]-->
<!--[if ie 8]>
<style>
<!--
#warp{ padding-bottom:11px;}
-->
</style>
<![endif]-->


您可能感兴趣的文章:

感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《如何解决css兼容性问题?css hack小技巧》技术文章,《如何解决css兼容性问题?css hack小技巧》详细使用和说明,有时《如何解决css兼容性问题?css hack小技巧》可能不完善、敬请谅解!如果《如何解决css兼容性问题?css hack小技巧》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片