zoukankan      html  css  js  c++  java
  • hack(兼容IE及浏览器常用的写法)

    hack 分两种  HTML hack  和CSS hack

    html hack

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     7     <title>hack(html hack)</title>
     8 </head>
     9 <body>
    10 <!--
    11     hack(真够难为不同浏览器去写不同的HTML css样式) 分为两种
    12     html hack
    13     css hack
    14     
    15     IE浏览器有很多兼容性问题,给我们提供了一些接口
    16     less than or equal ,表示小于或等于
    17     lt:less than  小于
    18     gt:greater than,表示大于
    19     if是如果 lte 代表小于  IE浏览器   9代表版本
    20       -->
    21       <h2>IE9呈现效果</h2>
    22       <!-- [if IE 9]>
    23         仅仅在IE9下面呈现出效果
    24         <![endif]  -->
    25         <hr>
    26         <h2>IE8</h2>
    27         <!-- [if lte IE8]>
    28             小于或等于IE8版本的浏览器呈现效果
    29         <![endif] -->
    30         <hr>
    31 </body>
    32 </html>
    View Code

    CSS hack

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     7     <title>hack (css hack)</title>
     8     <style>
     9         *{
    10             margin: 0;
    11             padding: 0;
    12         }
    13         body{
    14             background-color:yellow;
    15             /* IE 在属性名的前面加下划线或横线 */
    16             -background-color:blue;/*IE6 独有*/
    17             /* _background-color:red; *//*事实证明,_下划线在IE6及以下版本都可以呈现*/
    18         }
    19         p{
    20             font-size: 30px;
    21             /* IE8/9  hack符:/ ; 需要写在属性值的后面 */
    22             color:red/;
    23         }
    24         h2{
    25             /* IE 6/7/8/9/10 hack符:9需写在属性值的后面,分号前 */
    26             font-size: 12px9;
    27         }
    28 
    29         /* css 选择器 hack */
    30         /* IE 6 and blow 写法 * html .selector{}  */
    31        * html div{
    32             height: 200px;
    33             width: 200px;
    34             background:purple;
    35         }
    36 
    37         /*IE6 不忍四子级选择器*/
    38         /* 
    39         html>body.selector{}
    40         >子选择器:只选择儿子级,后代其他级别不选
    41         IE6 不忍四自带选择器,除了IET 豆能正常加载
    42          */
    43          div>h3{
    44              color:green;
    45          }
    46 
    47          /* IE6 不兼容 交集选择短期力的类选择器连写*/
    48          div.box1.box2.box3{
    49              border:solid 10px pink;
    50              border-radius:50%;/*css3 属性  IE8 及以下不兼容*/
    51              height: 500px;
    52          }
    53 
    54          /* IE6 盒模型
    55          如果不写DTD  IE6的盒子是内减的(怪异盒),其他浏览器器外扩
    56          解决方法  必须写DTD(!DOctype)约束
    57 
    58          如果盒子高度小于默认字号,不会正常显示。高度会默认的字号
    59          解决方法
    60          单独给IE6浏览器,强制给个很小的字号
    61 
    62           */
    63     </style>
    64 </head>
    65 <body>
    66     <h2>这是I36/7/8/9/10</h2>
    67     <p>这是IE8 9的演示</p>
    68     <div class="box1 box2 box3">
    69         <h3>这是DIV的子元素</h3>
    70     </div>
    71 </body>
    72 </html>
    View Code

    浮动的兼容

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     7     <title>浮动的兼容</title>
     8     <style>
     9         *{
    10             margin: 0;
    11             padding: 0;
    12         }
    13         div{
    14             width: 100px;
    15             height: 100px;
    16             background:yellow;
    17         }
    18         div.box1{
    19             float:flot;
    20         }
    21         div.box2{
    22             background-color:red;
    23             /*
    24               3px的bug
    25                 情况  一个浮动 一个不浮动,IE6两个盒子中间会出现3px的bug
    26                 解决方法:(不允许这么写)
    27                 必须解决:给坐标的浮动盒子加一个-3px的右margin(只给IE6浏览器加,注意hack符)
    28             */
    29             _margin-right:-3px;
    30         }
    31     </style>
    32 </head>
    33 <body>
    34     <!-- IE7 and blow 
    35     情况:不浮动的盒子(box2)不会钻到(box1)低下(占领它原来的标准流位置) ,
    36     IE7 中间不会有间隙 
    37     IE6以下有间隙
    38     解决办法:制作压盖效果用定位 同一级的盒子 要浮动都浮动
    39 
    40     3px的bug
    41     情况  一个浮动 一个不浮动,IE6两个盒子中间会出现3px的bug
    42     解决方法:(不允许这么写)
    43     必须解决:给坐标的浮动盒子加一个-3px的右margin(只给IE6浏览器加,注意hack符)
    44     -->
    45     <div class="box1"></div>
    46     <div class="box2"></div>
    47 </body>
    48 </html>
    View Code

    IE6 浮动第一个浮动元素双倍margin的问题

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     7     <title>IE6浮动双倍margin的问题</title>
     8     <style>
     9         *{
    10             margin: 0;
    11             padding: 0;
    12         }
    13         div{
    14             width: 200px;
    15             height: 200px;
    16             margin-left:50px;
    17             border:1px solid black;
    18         }
    19         div.box1{
    20             /* 只改变IE6的 把第一个浮动元素的margin减半 ,50px 改成25px 就解决了双倍margin的问题  注意IE6兼容 hack符号*/
    21             -margin-left:25px;
    22         }
    23     </style>
    24 </head>
    25 <body>
    26     <!-- 
    27         IE6双倍margin的问题
    28         情况:一些元素浮动,有一个与浮动方向相同的margin.第一个元素会出现双倍边距的问题
    29         解决方法:
    30         1  不允许父子元素之间的间距用儿子的margin去踹,用父亲的padding去挤出来,给第一个浮动的元素清除margin,或者给反方向的margin
    31         或者margin-right
    32         2  (不提倡 不允许父子之间的间距用儿子的margin去踹) 给第一个元素的margin减半
    33      -->
    34 <div class="box1"></div>
    35 <div class="box2"></div>
    36 <div class="box3"></div>
    37 <div class="box4"></div>
    38 <div class="box5"></div>
    39 </body>
    40 </html>
    View Code
  • 相关阅读:
    Java多线程总结
    Linux命令总结
    Java笔记
    JDK7和JDK8一些重要新特性
    第八周(11.04-11.10)----每周报告
    第八周(11.04-11.10)----结对项目----逆波兰
    第八周(11.04-11.10)----个人作业----历年学生作品点评
    第七周PSP(10.27-11.03)
    第七周(10.27-11.03)----补交第六周(10.20-26)每周例行报告
    个人项目----词频统计WEB(部分功能)
  • 原文地址:https://www.cnblogs.com/lvlisn/p/14389111.html
Copyright © 2011-2022 走看看