zoukankan      html  css  js  c++  java
  • 【兼容补丁】针对ie6/ie7/ie8/FF de 部分补丁

      a.在HTML中书写只让 IE 6 执行的写法:  

       <!--[if lte IE 6]><![endif]-->

       补充:

    IE条件注释是一种特殊的HTML注释,这种注释只有IE5.0及以上版本才能理解。比如普通的HTML注释是:

    <!--This is a comment-->

    而只有IE可读的IE条件注释是:

    <!--[if IE]> <![endif]-->

    “非IE条件注释”:

    <!--[if !IE]>--> non-IE HTML Code <!--<![endif]-->

    “非特定版本IE条件注释”(很少用到):

    <!--[if ! lt IE 7]><![IGNORE[--><![IGNORE[]]>Code for browsers that match the if condition<!--<![endif]-->

    简而言之,除了“Windows上的IE”之外的所有浏览器都会认为条件注释只是一段普通的HTML注释。你不能在CSS代码中使用条件注释。IE 条件注释是很有用的对IE隐藏或者展现特定代码的方法,比起在CSS中用诡异的_/制造bug,利用IE条件注释来写CSS “hacks”是更合理的方法。通俗点,条件注释就是一些if判断,但这些判断不是在脚本里执行的,而是直接在html代码里执行的。

    1. 条件注释的基本结构和HTML的注释(<!– –>)是一样的。因此IE以外的浏览器将会把它们看作是普通的注释而完全忽略它们。
    2. IE将会根据if条件来判断是否如解析普通的页面内容一样解析条件注释里的内容。
    3. 条件注释使用的是HTML的注释结构,因此他们只能使用在HTML文件里,而不能在CSS文件中使用。

    从语法上看这是相当合法的普通HTML注释。任何浏览器都会认为<!–和–>之间的部分是注释从而忽略它。但是IE也会看到其中[if IE]>,从而开始解释接下来的代码直到遇到<![endif]。所以,下面这些代码不会显示在任何其他浏览器中面。

    通过“比较操作符”可以更灵活地对IE版本进行控制,用法是在IE前面加上“比较操作符”。合法的操作符如下:

    • lte:就是Less than or equal to的简写,也就是小于或等于的意思。
    • lt :就是Less than的简写,也就是小于的意思。
    • gte:就是Greater than or equal to的简写,也就是大于或等于的意思。
    • gt :就是Greater than的简写,也就是大于的意思。
    • ! :就是不等于的意思,跟javascript里的不等于判断符相同

    示例:

    • <!–[if gt IE 5.5]> / 如果IE版本大于5.5 /
    • <!–[if lte IE 6]> / 如果IE版本小于等于6 /
    • <!–[if !IE]> / 如果浏览器不是IE /

    虽然看上去当你第一次使用条件注释的时候会更费时,但当你以后调试你的CSS的时候,就会发现非常方便。用条件注释你只需要写一遍HTML注释,而 用bug你需要为每一条规则都写上又长又丑的代码,而且还经常是为了改变其他的hacks而写的hacks。除此之外条件注释对于不支持它的任何浏览器而 言都是合法的HTML注释。以下为条件注释与CSS hacks的一些区别:

    1. Hacks是基于浏览器的bug,而这些bug最终可能会被修复。
    2. 条件注释是基于IE特定代码,这种识别机制任何时候都不会被移除。
    3. 每一个浏览器都能看见你的hacks,或许下一个版本或者一个新的浏览器会在你的hacks代码上出错。
    4. 只有IE才能看到条件注释,通过额外的“IE文件”来影响页面,其他浏览器根本就不会下载它。
    5. Hacks不能确保对哪些浏览器生效而对哪些不,用的hacks越多,代码越混乱。
    6. 条件注释利用版本匹配使得作者可以容易地对特定版本写代码。

    参考资料:http://haslayout.net/condcom

      b.设置float的div在 IE6 中margin加倍的问题:

       解决方案:加入display:inline;

       block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);

       Inline元素的特点是,和其他元素在同一行上,不可控制(内嵌元素);   

       此段摘自:cnblogs博主:心随灵动

      c.在 IETester 下使用Firebug:

       首先打开ietester的DebugBar,切换到脚本标签,可以看到最下面一栏有个输入框,注释写着"// Javascript 控制台",这是个类似于firebug的脚本控制台的功能,可以输入js并运行。

       我们在这里输入脚本:

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

       var s = document.createElement("script");
       s.src = 'http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js';
         s.type="text/javascript";
       if(document.all){
            s.onreadystatechange = function(){
          if(this.readyState == "loaded" || this.readyState == "complete"){
            alert("loaded success in ie");
              }
               }
       } else {
          s.onload = function(){
          alert("load success");
            }
       }
         document.body.appendChild(s);

       firebug.init();

     

       此段摘自:Baidu博主:阿当

        

  • 相关阅读:
    bootstrap-table 数据表格行内修改
    java文件上传(单文件 多文件)与删除
    bootstrap-table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)
    bootstrap-table 大量字段整体表单上传之时间处理
    Java实习问题记录
    Playbook剧本初识
    自动化运维工具-Ansible基础
    性能优化概述
    Rewrite基本概述
    Nginx常见问题
  • 原文地址:https://www.cnblogs.com/kojya/p/2355815.html
Copyright © 2011-2022 走看看