zoukankan      html  css  js  c++  java
  • 火狐与IE8的关键兼容代码 CSS HACK

    IE8 CSS HACK

    以前做网页的时候,只考虑 IE6 和 FF 的兼容性,公司换了,要求也高了,FF和IE 6 7 8 要全兼容了,
    碰到要单独Hack IE8的。当然,用注释非常方便,只要添加相应的注释就可以解决。但问题是,为了一句CSS写多一个文件,或者在header上添加注释,那显然不是懒人的习惯做法。结论如下:

    selector{
    property:value;
    property:value\9;
    +property:value;
    _property ;

    当然,注意顺序。根据CSS的优先性,上面的写法,分别针对Firefox、IE8、IE7和IE6显示值。让我们看看这个:

    CSS代码如下:

    p.ie{
    height:60px;text-align:center;line-height:60px;border:1px dashed #bbb;background:#f7f7f7;font:15;
    color:blue; // 所有浏览器
    color:brown\9; // 所有IE浏览器
    +color:red; // IE7
    _color:green; // IE6
    }

    HTML 代碼:

    <body style="500px;margin:0 auto;">
    <p class="ie">
    <span style="display:block;display:none。9;">嘿嘿,小子竟然也用Firefox,蓝色文字。</span>
    <!--[if IE 8]>不错不错,挺先进的嘛,使用IE8呢!文字是褐色的。<![endif]-->
    <!--[if IE 7]>你,IE7,红色文字!<![endif]-->
    <!--[if IE 6]>孩子,虽然显示的是绿色文字,不过,IE6可不是好东西呢!<![endif]-->
    </p>
    </body>

    注意下面介绍的这些hack写法仅适用于XHTML1.0。如果没有在HTML最前加上

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">

    那么效果将不一样!此外,这里所说的IE8,不是指IE8的兼容模式,因为IE8的兼容模式其实就是IE7。

    区别IE6、7与FF/IE8:
           background:blue;*background:orange;

    引用
    显示效果:
    IE 6/7:orange
    FF/IE8:blue
    原理:FF/IE8不支持*开头,而IE6/7都支持。


    区别IE6与IE7/IE8/FF:

           background:green;_background:blue;

    引用
    显示效果:
    IE7/8/FF:green
    IE6:blue
    原理:IE6支持下划线"_",IE7、8和firefox均不支持下划线。



    区别FF/IE8和IE6/7:

    background:orange;+background:green;-background:blue;

    或者

    background:orange;*background:green!important;*background:blue;

    引用
    显示效果:
    IE6:blue
    IE7:green
    FF/IE8:orange
    原理:IE6能识别-,IE7能识别+,IE8和FF都不能识别+和-
    IE8/FF都不识别*,IE7优先识别!important,IE6不能识别!important。


    关于IE8的hacks:

    .test{

         color:#00f\9;

         color:#00f\9;

    }


    可同时区分IE8、IE7、IE6、Firefox的CSS hacks:
    .test{
         color:#000;
         color:#00f\9;
         *color:#f00;
         _color:#0f0;
    }


    添加相应的注释解决兼容性问题,注释相应的Css文件:

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

    <!--[if IE 6]>

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

    <![endif]-->

    <!--[if IE 7]>

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

    <![endif]-->

    <!--[if gte IE 8]>

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

    <![endif]-->



    注释相应的Css 内容:

    <!--[if ie 6]>

    <style>

    <!--

    #warp{ padding-bottom:11px;}

    -->

    </style>

    <![endif]-->

    <!--[if ie 7]>

    <style>

    <!--

    #warp{ padding-bottom:11px;}

    -->

    </style>

    <![endif]-->

    <!--[if ie 8]>

    <style>

    <!--

    #warp{ padding-bottom:11px;}

    -->

    </style>

    <![endif]-->

  • 相关阅读:
    MySQL优化
    右键菜单怎样添加“在此处打开命令提示符”选项
    MemSQL与MySQL不兼容问题总结
    Ubuntu Server 18.04 修改网路配置
    How to Install MemSQL
    Metro UI 菜单(Winform)
    Windows Server 2008 系统设置集合
    推荐个好东西swoole,php如虎添翼
    php的swoole扩展中onclose和onconnect接口不被调用的问题
    关于编程语言(转/收藏)-原文作者:韩天峰(Rango)
  • 原文地址:https://www.cnblogs.com/binlunia/p/11267711.html
Copyright © 2011-2022 走看看