• 技术文章 >web前端 >css教程

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

    PHP中文网PHP中文网2016-05-16 12:07:41原创882
    转自 蓝色理想
    作者 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中文网(m.sbmmt.com)!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:兼容性问题,CSS
    上一篇:用css动态生成闪字的代码_经验交流 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 聊聊怎么利用CSS实现波浪进度条效果• 手把手教你使用CSS实现酷炫六边形网格背景图• 实例详解CSS渐变锯齿问题如何解决!• 另辟蹊径!看看使用CSS滤镜怎么构建圆角和波浪效果• 聊聊怎么利用 CSS 构建花式透视背景
    1/1

    PHP中文网