• 初涉CSS Hack


    之前调整浏览器兼容基本上没用到CSS Hack技术,所以调整起来相当麻烦,很多时候要一个个像素来调。今天研究了下CSS Hack,感觉受益良多。

    先看下我们可以设定属性的不同符号来调整:
    ———————IE6——    IE7——IE8——IE9---FF——  Opera9.5
    >property——  Y——     Y——    N—— N  ----N——     N
    .property——   Y——     Y——    N—— N --- N——      N
    *property——   Y——     Y——    N——N   ---N——      N
    _property——   Y——     N——    N—— N  ---N——      N

    由此看见都是IE在作怪,那么IE中最令人头疼的要数IE6吧,首先IE6不支持!important,_property也只有IE6支持。

    1、先看个简单的执行顺序:

    View Code
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>css test</title>
    <style type="text/css">
    .test
    {
    color
    :green;
    color
    :red;
    }

    </style>
    </head>

    <body>
    <p id="a" class="test">color test</p>
    </body>
    </html>

    我在各个浏览器测试下都支持顺序覆盖原则。

    2、来看下,设置!important,就能看出IE6与其他浏览器的其别了。

    <style type="text/css">
      .test{
      color:green !important;
      color:red;
      }
    </style>

    上面说过了,IE6不支持优先级,所以red会覆盖green。所以只有在IE6文字的颜色是红的,其他都是绿色的。

    3、然后呢,我有做了简单的修改:

    <style type="text/css">
      .test{
      color:red !important;
      .color:blue !important;
      }
    </style>

    根据顺序规则和最前面的支持情况,在IE6、IE7文字的显示颜色应该是蓝色的,其他浏览器显示红色。

    不是的。我也做了这样的测试:

    <style type="text/css">
    .test{
    color:red !important;
    color:blue !important;
      }
    </style>

    结果是都显示蓝色(当然排除IE6)

    4、做个跟3有点一样的测试

    <style type="text/css">
    .test{
    color:red ;
    .color:blue ;
       }
    </style>

    理论上(我是根据最上面的原则),IE6、IE7显示blue、其他显示red,符合测试。


     

  • 相关阅读:
    基本内置类型
    多维数组
    数组
    迭代器
    标准库类型 vector
    标准库类型 string
    运算符优先级表
    类型转换
    sizeof 和逗号运算符
    位运算符
  • 原文地址:https://www.cnblogs.com/huaizuo/p/2114985.html
Copyright © 2020-2023  润新知