zoukankan      html  css  js  c++  java
  • CSS hack IE6、7、8、FF浏览器兼容

    方法一:
       跨 浏览器的网页设计一直是让人很头疼的问题,这不只是因为浏览器的版本众多,还有一个重要的原因是相同浏览器的不同时期的 版本也会有差异, 甚至是在不同操作同台上还会有不同。因此使CSS hack技术进行浏览器区分是实现跨浏览器访问一个好方法。CSS Hack技术有很多,具体可以查看:

    本文据说的主要是通过“.”,“>”,“*”,“_”来区分。以下是本人对这四种符号的测 试结果:
    ———————IE6——     IE7——IE8——FF2——FF3—     Opera9.5
    >property——     Y——     Y——     Y——     N——     N——     N
    .property——     Y——     Y——     Y——     N——     N——     N
    *property——     Y——     Y——     Y——     N——     N——     N
    _property——     Y——     N——     N——     N——     N——     N

    我 们可以看到>property、.property、*property在各浏览器中的表现是一致的,只有_property在IE6和IE7、 IE8中有所区别。另外还要注意的,IE6是不支持!important的,而其他几款浏览器都识别。

    举例:
    要对想同的文字在不 同浏览器中显示不同的颜色可以使用:
    color :brown !important ;   /*用于Opera、Firefox2、Firefox3等现代浏览器*/   
    1. > color : green !important ;     /*IE7、IE8可以识别该规则,因此它覆盖掉了上一条规则*/   
    2. color : red ;   /*所有浏览器都可以识 别,但是以上两条规则有!important,所以这条规则被忽视;只有IE6认识并覆盖掉上两条规则*/   
    因 此这就实现了跨浏览器的表现问题。_property和*property也是一样的。对于_property来说,只有IE6才能识别,因此可以用于单 独对IE6的设置中。

    不过这里要注意书写的顺序:现在浏览器的写法要写在最前面,IE6的写法要写在最后面用于覆盖,其他浏览器写在中 间。
    方法二:
    其 实主要是浏览器:IE6/IE7/firefox下,各个对CSS代码的解释有区别,下边转载一篇HACK的文章,相当实用。

    区别IE6 FF :           background:orange ;* background:blue ;

    区别IE6 IE7 :          background:green !important ;background:blue ;

    区别IE7 与 FF:           background:orange ; * background:green ;

    区别FF /IE7 /IE6 :       background:orange ;* background:green !important ;* background:blue ;

    注:IE都能识别* 标准浏览器(如FF)不能识别*
    IE6 能识别* ,但不能识别 !important
    IE7能识别* ,也能 识别!important
    FF不能识别* ,但能 识别!important

    另外再补充一个,下划线"_ ",
    IE6支持下划线,IE7和firefox均不支持下划 线。(推荐.我这只有这个有效!)

    于是大家还可以这样来区分IE6 IE7 firefox
    : background:orange ;* background:green ;_ background:blue ;


    * html   p {color:#f00;}          支持 IE6        不支持FF IE7 IE8b

    *+html p {color:#f00;}          支持 IE7 IE8b        不支持FF IE6

    p {*color:#f00;}          支持 IE7 IE6        不支持FF IE8

    注:不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中 间,IE6的写在后面。

    ===========================================================================

    1.区别IE和非IE浏览器

    #tip {
    background
    :blue; /*非IE 背景藍色*/
    background
    :red \9; /*IE6、IE7、IE8背景紅色*/
    }

    2.区别IE6,IE7,IE8,FF
    【区别符号】:「\9」、「*」、「_」
    【示例】:
    #tip {
    background
    :blue; /*Firefox 背景变蓝色*/
    background
    :red \9; /*IE8 背景变红色*/
    *background
    :black; /*IE7 背景变黑色*/
    _background
    :orange; /*IE6 背景变橘色*/
    }
    【说明】:因为IE系列浏览器可读「\9」,而IE6和IE7可读「*」(米字号),另外IE6可辨识「_」(底线),因此可以依照顺序写下来,就会让浏 览器正确的读取到自己看得懂得CSS语法,所以就可以有效区分IE各版本和非IE浏览器(像是Firefox、Opera、Google Chrome、Safari等)。

    3.区别IE6、IE7、Firefox (方法 1)
    【区别符号】:「*」、「_」
    【示例】:
    #tip {
    background
    :blue; /*Firefox背景变蓝色*/
    *background
    :black; /*IE7 背景变黑色*/
    _background
    :orange; /*IE6 背景变橘色*/
    }
    【说明】:IE7和IE6可读「*」(米字号),IE6又可以读「_」(底线),但是IE7却无法读取「_」,至于Firefox(非IE浏览器)则完全 无法辨识「*」和「_」,因此就可以透过这样的差异性来区分IE6、IE7、Firefox

    4.区别IE6、IE7、Firefox (方法 2)
    【区别符号】:「*」、「!important」
    【示例】:
    #tip {
    background
    :blue; /*Firefox 背景变蓝色*/
    *background
    :green !important; /*IE7 背景变绿色*/
    *background
    :orange; /*IE6 背景变橘色*/
    }
    【说明】:IE7可以辨识「*」和「!important」,但是IE6只可以辨识「*」,却无法辨识「!important」,至于Firefox可以 读取「!important」但不能辨识「*」因此可以透过这样的差异来有效区隔IE6、IE7、Firefox。

    5.区别IE7、Firefox
    【区别符号】:「*」、「!important」
    【示例】:
    #tip {
    background
    :blue; /*Firefox 背景变蓝色*/
    *background
    :green !important; /*IE7 背景变绿色*/
    }
    【说明】:因为Firefox可以辨识「!important」但却无法辨识「*」,而IE7则可以同时看懂「*」、「!important」,因此可以 两个辨识符号来区隔IE7和Firefox。

    6.区别IE6、IE7 (方法 1)
    【区别符号】:「*」、「_」
    【示例】:
    #tip {
    *background
    :black; /*IE7 背景变黑色*/
    _background
    :orange; /*IE6 背景变橘色*/
    }
    【说明】:IE7和IE6都可以辨识「*」(米字号),但IE6可以辨识「_」(底线),IE7却无法辨识,透过IE7无法读取「_」的特性就能轻鬆区隔 IE6和IE7之间的差异。

    7.区别IE6、IE7 (方法 2)
    【区别符号】:「!important」
    【示例】:
    #tip {
    background
    :black !important; /*IE7 背景变黑色*/
    background
    :orange; /*IE6 背景变橘色*/
    }
    【说明】:因为IE7可读取「!important;」但IE6却不行,而CSS的读取步骤是从上到下,因此IE6读取时因无法辨识 「!important」而直接跳到下一行读取CSS,所以背景色会呈现橘色。

    8.区别IE6、Firefox
    【区别符号】:「_」
    【示例】:
    #tip {
    background
    :black; /*Firefox 背景变黑色*/
    _background
    :orange; /*IE6 背景变橘色*/
    }
    【说明】:因为IE6可以辨识「_」(底线),但是Firefox却不行,因此可以透过这样的差异来区隔Firefox和IE6,有效达成CSS hack。
    来自: http://hi.baidu.com/lzxassj/blog/item/c78935fbb01f582f4f4aeaee.html
  • 相关阅读:
    顺序容器添加,查询,删除元素
    使用fiddler对app做弱网测试
    工作总结
    软件测试面试题_3
    软件测试面试题_2
    软件测试面试题_1
    MySQL的下载及安装
    关于let以及var的区别
    关于获取各种浏览器可见窗口大小的一点点研究
    log4J指定类下面的日志分隔
  • 原文地址:https://www.cnblogs.com/linyijia/p/1805119.html
Copyright © 2011-2022 走看看