zoukankan      html  css  js  c++  java
  • ff ie7 ie6 css支持问题[拼网页标记]

     
      转载请注明 http://netsos.cnblogs.com/
    一、!important (功能有限)
    随着IE7对!important的支持, !important 方法现在只针对IE6的兼容.(注意写法.记得该声明位置需要提前.)
    例如:

    #example {
    100px !important; /* IE7+FF */
    200px; /* IE6 */
    }

    二、CSS HACK的方法(新手可以看看,高手就当路过吧)

    首先需要知道的是:
     转载请注明 http://netsos.cnblogs.com/
    所有浏览器 通用 height: 100px;
    IE6 专用 _height: 100px;
    IE7 专用 *+height: 100px;
    IE6、IE7 共用 *height: 100px;
    IE7、FF 共用 height: 100px !important;

    例如:

    #example { height:100px; } /* FF */

    * html #example { height:200px; } /* IE6 */

    *+html #example { height:300px; } /* IE7 */

    下面的这种方法比较简单
     转载请注明 http://netsos.cnblogs.com/
    举几个例子:

    1、IE6 - IE7+FF

    #example {
    height:100px; /* FF+IE7 */
    _height:200px; /* IE6 */
    }
    其实这个用上面说的第一种方法也可以
    #example {
    height:100px !important; /* FF+IE7 */
    height:200px; /* IE6 */
    }

    2、IE6+IE7 - FF

    #example {
    height:100px; /* FF */
    *height:200px; /* IE6+IE7 */
    }

    3、IE6+FF - IE7

    #example {
    height:100px; /* IE6+FF */
    *+height:200px; /* IE7 */
    }

    4、IE6 IE7 FF 各不相同

    #example {
    height:100px; /* FF */
    _height:200px; /* IE6 */
    *+height:300px; /* IE7 */
    }
    或: 这是 顺序--------------------->在这里再加一个 苹果的,,[整死人了]---针对safari 的
    这里写不出来,我放到最下面,,博客园 老是把我这句话过滤掉,,,,,,,
    #example {
    height:100px; /* FF */
    *height:300px; /* IE7 */
    _height:200px; /* IE6 */
    }

    需要注意的是,代码的顺序一定不能颠倒了,要不又前功尽弃了。因为浏览器在解释程序的时候,如果重名的话,会用后面的覆盖前面的,就象给变量赋值一个道理,所以我们把通用的放前面,越专用的越放后面
     转载请注明 http://netsos.cnblogs.com/
    解释一下4的代码:

    读代码的时候,第一行height:100px; 大家都通用,IE6 IE7 FF 都显示100px
    到了第二行*height:300px; FF不认识这个属性,IE6 IE7都认,所以FF还显示100px,而IE6 IE7把第一行得到的height属性给覆盖了,都显示300px
    到了第三行_height:200px;只有IE6认识,所以IE6就又覆盖了在第二行得到的height,最终显示200px
    这样,三个浏览器都有自己的height属性了,各玩各的去吧

    这样说要是你还不明白,要么你去撞墙,要么我去!不过还是你去比较好。

    哦,差点忘了说了:
    *+html 对IE7的兼容 必须保证HTML顶部有如下声明:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     转载请注明 http://netsos.cnblogs.com/

    三、使用IE专用的条件注释

    <!--其他浏览器 -->

    <link rel="stylesheet" type="text/css" href="css.css" />

    <!--[if IE 7]>

    <!-- 适合于IE7 -->

    <link rel="stylesheet" type="text/css" href="ie7.css" />

    <![endif]-->

    <!--[if lte IE 6]>

    <!-- 适合于IE6及以下 -->

    <link rel="stylesheet" type="text/css" href="ie.css" />

    <![endif]-->

    貌似要编三套css,我还没用过,先粘过来再说

    IE的if条件Hack

    1. <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]-->
    2. <!--[if IE]> 所有的IE可识别 <![endif]-->
    3. <!--[if IE 5.0]> 只有IE5.0可以识别 <![endif]-->
    4. <!--[if IE 5]> 仅IE5.0与IE5.5可以识别 <![endif]-->
    5. <!--[if gt IE 5.0]> IE5.0以及IE5.0以上版本都可以识别 <![endif]-->
    6. <!--[if IE 6]> 仅IE6可识别 <![endif]-->
    7. <!--[if lt IE 6]> IE6以及IE6以下版本可识别 <![endif]-->
    8. <!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->
    9. <!--[if IE 7]> 仅IE7可识别 <![endif]-->
    10. <!--[if lt IE 7]> IE7以及IE7以下版本可识别 <![endif]-->
    11. <!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->注:gt = Great Then 大于
    > = > 大于号
    lt = Less Then 小于
    < = < 小于号
    gte = Great Then or Equal 大于或等于
    lte = Less Then or Equal 小于或等于

    四、css filter的办法(据作者称是从国外某经典网站翻译过来的说)
     转载请注明 http://netsos.cnblogs.com/
    新建一个css样式如下:

    #item {

    200px;

    height: 200px;

    background: red;

    }

    新建一个div,并使用前面定义的css的样式:

    <div >some text here</div>

    在body表现这里加入lang属性,中文为zh:

    <body lang="en">

    现在对div元素再定义一个样式:

    *:lang(en) #item{

    background:green !important;

    }

    这样做是为了用!important覆盖原来的css样式,由于:lang选择器ie7.0并不支持,所以对这句话不会有任何作用,于是也达到了ie6.0下同样的效果,但是很不幸地的是,safari同样不支持此属性,所以需要加入以下css样式:

    #item:empty {

    background: green !important

    }
     转载请注明 http://netsos.cnblogs.com/
    :empty选择器为css3的规范,尽管safari并不支持此规范,但是还是会选择此元素,不管是否此元素存在,现在绿色会现在在除ie各版本以外的浏览器上。


    五、FLOAT闭合(clearing float)

      网页在某些浏览器上显示错位很多时候都是因为使用了float浮动而没有真正闭合,这也是div无法自适应高度的一个原因。如果父div没有设float而其子div却设了float的话,父div无法包住整个子DIV,这种情况一般出现在一个父DIV下包含多个子DIV。解决办法:

    1、给父DIV也设上float(不要骂我,我知道是废话)

    2、在所有子DIV后新加一个空DIV(不推荐,有些浏览器可以看见空DIV产生的空隙)
     转载请注明 http://netsos.cnblogs.com/
    比如:

    .parent{100px;}
    .son1{float:left;20px;}
    .son2{float:left;80px;}
    .clear{clear:both;margin:0;parding0;height:0px;font-size:0px;}

    <div class="parent">
    <div class="son1"></div>
    <div class="son2"></div>
    <div class="clear"></div>
    </div>

     md,又给我过滤了...看....

    @media screen and ("Apple-tab-span" style="font-family: 'Courier New'; white-space: pre; ">   p {
     color:#633;
      }
    }
    真正的再怎么也加不进去!!!!!!,我评论下看看,能出来不?
  • 相关阅读:
    清除cookie
    判断是否为中文
    正则表达式
    smarty基础语法
    smarty模板
    ajax
    php工作笔记1
    PHP中超全局变量$GLOBALS和global的区别
    SQL连表查询
    linux上安装git(客户端)及GitHub的配置
  • 原文地址:https://www.cnblogs.com/NetSos/p/1739421.html
Copyright © 2011-2022 走看看