首页 > web前端 > css教程 > 正文

解决IE5/IE5.5/IE6/FF的兼容性问题——CSS_经验交流

PHP中文网
发布: 2016-05-16 12:07:41
原创
1616人浏览过

转自 蓝色理想 
作者 bias
原文地址 http://www.blueidea.com/tech/site/2006/3296.asp 
之前找了几个不同版本的可独立运行的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可以识别,这点是很重要的哦!在后面大家就会知道了。(注:我测试过其它的一些符号,如“~”、“`”、“

-------------------------------------------------

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

以上就是解决IE5/IE5.5/IE6/FF的兼容性问题——CSS_经验交流的内容,更多相关内容请关注PHP中文网(www.php.cn)!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号