zoukankan      html  css  js  c++  java
  • css ie hack整理

    网上有很多关于ie hack的文章,可能由于文章发布后ie的版本还在升级。所以导致有些hack写法已经不适用了。以下是本人整理的ie6-11的一些hack常用写法。(以下默认文档模式为标准模式)

    1.通过条件判断ie版本来引用不同的css

    <!--[if IE]>只试用ie浏览器<![endif]-->
    <!--[if !IE]>只试用非ie浏览器<![endif]-->
    <!--[if IE 6]>只试用ie6浏览器<![endif]-->
    <!--[if gt IE 6]>只试用大于ie6浏览器<![endif]-->
    <!--[if lt IE 9]>只试用小于ie9浏览器 <![endif]--> 
    <!--[if gte IE 8]>只试用大于或等于ie8浏览器<![endif]--> 
    <!--[if lte IE 7]>只试用小于或等于ie7浏览器<![endif]-->

    以上方式以此类推,可以通过引用不同的外链css或直接使用内嵌样式表 来满足基本要求。

    2.直接使用css属性的hack写法。

    1)!important  由于ie6不知别!important,其他浏览器都识别,所以可以用于ie6 hack。

    div{
      max-100px;
      auto !important;
      100px;          
    }
    

    2)  下划线 '_'   ie6的有一个专用hack写法。

    div{
      color:blue;
      _color:red;  /*只有在ie6下才会表现为红色*/
    }

    3) 星号 '*'  ie6,7的公用写法。  

    div{
      color:blue;
      *color:red;   /*在ie6,7下都会表现为红色*/
    }
    

    ie7没有专用写法,*会同时识别ie6,7,如果只想识别ie7,可以同时配合下划线‘_’使用。  

    4)   ie8及以上浏览器都会识别写法,ie6,7不识别

    div{
        color:red;
        color:#ccc;
    }
    

    以上写法只有ie8及以上浏览器都会识别,ie6,7不识别,而且会导致ie6,7不识别普通写法(color:red),需要同时使用'*'来适配ie6,7。

    5)9   ie6-10都识别9,10以上不识别

    div{
        color:red;
        color:blue9;                   /*ie 6-10都为blue*/
    } 

    6)9  ie9,10识别   ie8,11不识别,使用默认    ie6,7不识别,也不使用默认

    div{
      color:red;
      color:blue9;  
    }
    

    以上写法在ie9,10中会表现会蓝色,在ie8,11下会表现为红色,而在ie6,7下则表现为黑色,需要单独为ie6,7使用 '*' hack。

    以上就是总结的ie hack写法,代码和例子均测试过。欢迎大家补充,分享。

    最后说一句,如果可以通过其他方式避免ie不同版本表现不一致,尽量不要使用hack写法。

      

  • 相关阅读:
    Building Apache Thrift on CentOS 6.5
    ToStringBuilder 学习
    对List中对象的去重
    MyEclipse启动Tomcat服务器时老是跳到Debug调试上
    JS 实现点击展开菜单
    详解公钥、私钥、数字证书的概念 转载
    eclipse svn 忽略 target目录 等等... 我用的后边的方法 (转载)
    Log4j XML 配置
    JS完成改变新闻字体大中小的显示
    Javascript 简单学习
  • 原文地址:https://www.cnblogs.com/Tzhibin/p/4365173.html
Copyright © 2011-2022 走看看