CSS兼容性问题 && CSS HACK
来源: 阅读:439 次 日期:2015-05-04 11:15:54
温馨提示: 小编为您整理了“CSS兼容性问题 && CSS HACK”,方便广大网友查阅!

以前做网页的时候,只考虑 IE6 和 FF 的兼容性,公司换了,要求也高了,FF和IE 6 7 8 要全兼容了,

碰到要单独Hack IE8的。当然,用注释非常方便,只要添加相应的注释就可以解决。但问题是,为了一句CSS写多一个文件,或者在header上添加注释,那显然不是懒人的习惯做法。结论如下:

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" "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]-->

更多信息请查看IT技术专栏

更多信息请查看网页制作
手机网站地址:CSS兼容性问题 && CSS HACK
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map