您的位置: 首页 > 技术文档 > 网站建设 > [css]IE5/IE5.5/IE6/FF兼容性
div下图片自适应解决方法 回到列表 为什么要进行“标准”
用户名:
密 码: 忘记密码
注册会员 游客参观 论坛帮助
 [css]IE5/IE5.5/IE6/FF兼容性

作者:bias 时间: 2006-03-21 文档类型:原创 来自:蓝色理想
浏览统计 total:1366 | year:1366 | Quarter:435 | Month:435 | Week:155 | today:26

解决IE5/IE5.5/IE6/FF的兼容性问题——CSS

之前找了几个不同版本的可独立运行的IE浏览器,正好拿来试试页面的兼容性问题。不试不知道,在IE6和FF中没问题的页面在IE5和IE5.5中乱成一团,一直听说IE5是WEB标准制作的一个“钉子户”,现在不得不相信了。

既然有问题,那就找找解决的方法咯,在网上一搜,相关的文章还是不少的,觉得最直接的方法还是“IE条件注释”,很方便的就能为IE的不同版本写样式。但这样就得为每个版本写一个样式,不利于文件的优化。

找了一些相关的CSS HACK后,觉得应该可以把IE5/IE5.5/IE6/FF的HACK写到一起的,经过测试,终于找到了一个不错的方法,下面我们来看看怎么实现:
大家都知道用!important声明可以提升指定样式规则的应用优先权,如下面的例子:
-------------------------------------------------
E1{
background-color: red !important;/*提升优先权*/
background-color: blue;
}
-------------------------------------------------

但这样写在IE中会有个问题,看过我的《关于CSS样式表优先级》和《关于CSS样式表优先级补遗》,你会知道在IE6和FF中用!important声明可以提高优先级别,但在IE6中的!important声明并不是绝对的,它会被之后的同名属性定义所替换。也就是说在上面的例子中,IE6所应用的是最后一个背景色的值,即“blue”;而在FF中背景色的值为“red”。根据这一点,我们就可以把FF和IE的样式分离开。
OK ,解决了FF和IE的问题,现在来解决IE自己的问题。
看过了嘟嘟的《绕过IE6支持IE5的别一种写法-IE也支持">"》后有感而发,使用“>”IE是否真的可以认得?我们来看个例子:
-------------------------------------------------
E1{
background-color: red;
>background-color: blue;
}
-------------------------------------------------

在FF中得到的是背景色红色,而在IE中得到的背景色是蓝色,根据样式重定义的规则,如果浏览器可以识别“>”,则应该得到的蓝色的背景,因此可以知道“>”只有IE可以识别,这点是很重要的哦!在后面大家就会知道了。(注:我测试过其它的一些符号,如“~”、“`”、“<”等,都只有IE可以识别,在此为了感谢嘟嘟,推荐使用“>”)

我们再来看个例子:
-------------------------------------------------
E1{
>/*IE only*/background-color: black;
>/*IE only*/background-color /*IE5.5*/: green;
}
-------------------------------------------------

这个例子在IE6中得到了黑色的背景;而在IE5.5中得到的绿色的背景;在IE5中也得到了黑色的背景。这就说明了第二句定义只有IE5.5能识别,这是个很早就公布的HACK,可以在网上找到相关的资料,要注意的就是在属性名之后是有一个空格的。到此我们已经把FF、IE5.5、IE6分离出来了,那IE5呢?其实现在我们只要把IE5跟IE6分开就OK了,来看看例子:
-------------------------------------------------
E1{
>/*IE only*/background-color: red;/*IE5*/
}
E1/*IE5.5+*/{
>/*IE only*/background-color: black;
}
-------------------------------------------------

这里我们又用到一个HACK,就是“E1/**/{}”,这个定义在IE5以上的版本才能识别出来。这个例子得到的结果是,在IE5中的背景色为红色;在IE5以上版本中得到的是黑色背景。
终于把不同版本的浏览器都分离出来了,这样我们就可以为不同的浏览器定义不同的样式了。来看个完整的例子:
-------------------------------------------------
E1{
width: 500px;
height: 50px;
background-color: red !important;/*FF*/
background-color: blue;/*IE5*/
text-align:center;
}
E1/*IE5.5+*/{
>/*IE only*/background-color: black;/*IE6*/
>/*IE only*/background-color /*IE5.5*/: green;
}
-------------------------------------------------

需要注意的是,在上面例子中“background-color”定义的顺利不能改变,即FF-IE5-IE6-IE5.5。对于IE的定义在属性前要加“>”,因为“E1/**/{}”这个HACK在FF中可以识别。也许你会想,上面的例子不是可以写成:
-------------------------------------------------
E1{
width: 500px;
height: 50px;
background-color: red;/*FF*/
>background-color: blue;/*IE5*/
text-align:center;
}
E1/*IE5.5+*/{
>/*IE only*/background-color: black;/*IE6*/
>/*IE only*/background-color /*IE5.5*/: green;
}
-------------------------------------------------

这样不就又可以省下几个字节?是没错,可是HACK不是标准,如果滥用HACK,那只会离标准越来越远!

出处:蓝色理想
责任编辑:moby

◎进入论坛网站综合网页制作版块参加讨论

相关文章 更多相关链接
如何用CSS定义表格与模拟表格
div下图片自适应解决方法
影响 ActiveX 内容的 IE 升级包
新颖实用的显示图片效果
xml css htc 的综合运用
全网 本站 论坛
热门搜索:CSS Fireworks 设计比赛 网页制作 Dreamweaver Studio8 Flash
站点最新 站点最新列表
flash缓动效果
firework制作木头效果
JS三级联动选单
UBB,剪贴板,textRange及其他
background-position另类用法
捉鱼LOGO和卡通形象设计大赛
用FSO操作 xml
滑动门菜单技术
Flash 右键菜单生成器
利用图层混合模式和通道抠图
栏目最新 栏目最新列表
flash缓动效果
firework制作木头效果
JS三级联动选单
UBB,剪贴板,textRange及其他
background-position另类用法
用FSO操作 xml
滑动门菜单技术
Flash 右键菜单生成器
利用图层混合模式和通道抠图
网站亲和力评估

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

本文现有 3 条评论 暂时没有人参于评分


ceo7188 Publish at 2006-3-24 9:09:16
这简直就是 悲哀

为什么会有这种事情发生,难道说他们浏览器软件商之间的问题要让这些无辜的人来为他们改变,为他改变我想在越来越希望出现一个像秦始皇一样的人就像统一度量衡一样。来得干脆~~~~~~
taoyb Publish at 2006-3-22 10:41:36
一台机子可以同时有IE5.0、5.5、6.0、7.0吗?请赐教,谢谢。
iei Publish at 2006-3-21 10:40:37
奇怪了,怎么我的IE5.5显示的也是黑色?
您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
《Flash第一步系列》
《交互设计之路》
《Dreamweaver 从基础到实践》
《色彩管理》
《网页设计专家门诊》
《职业之道》设计师的技能书
《Flash MX 2004网站开发精粹》