IE6下常见兼容性总结

1.横向双边距bug

    * { margin:0; padding:0; }
    .box {
        float:left;
        margin-left:20px;
        width:200px;
        height:200px;
        background-color:red;
        /*加*/
        display:inline;
     }
    <!--布局-->
    <div class="box"></div>

bug产生原因:margin的方向与浮动的方向相同
解决方法:浮动的元素身上加 display:inline;

2.li下面多出的4px边距

* { margin:0; padding:0; }
ul {
    width:500px;
    margin:100px auto;
    background:green;
 }
li {
    list-style:none;
    overflow:hidden;
    width:100%;
    background:#39F;
    /*加*/
    vertical-align:top;
 }
.left {
    float:left;
    height:200px;
    width:200px;
    background:#F63;
 }
<!--布局-->
 <ul>
     <li><div class="left"></div></li>
      <li><div class="left"></div></li>
      <li><div class="left"></div></li>
      <li><div class="left"></div></li>
      <li> <div class="left"></div></li>
   </ul>

bug产生原因:li 中有浮动的元素
解决方法:li 加上 vertical-align:top;

3.单像素bug

* { margin:0; padding:0; }
.box {
    position:relative; 
    /*看这里*/
    width:501px;
    height:501px;
    margin:100px auto;
    background:red;
 }
h3 {
    position:absolute;
    right:0; bottom:0;
    width:100px; 
    height:100px; 
    background:#33C;
 }
<!--布局-->
<div class="box">
    <h3></h3>
</div>

bug产生原因:IE6 对于奇数定位支持的不是很好
解决方法:在设计初期就把宽高设置为偶数
1)字体大小为奇数之边框高度少1px;
解决方法:字体大小设置为偶数或line-height为偶数;
2)line-height,文本垂直居中差1px;
解决方法:padding-top代替line-height居中,或line-height加1或减1;
3)与父标签的宽度的奇偶不同的居中造成1px的偏离.
解决方法:如果父标签是奇数宽度,则子标签也用奇数宽度;如果是父标签偶数宽度,则子标签也用偶数宽度 .

4.最小高度

* { margin:0; padding:0; }
div {
    /*加*/
     overflow:hidden;
     height:0;
     width:200px;
     border:1px solid red;
 }
<!--布局-->
<div></div>

bug产生原因:IE6 下一个div有宽度,高度最小不是0而是字体大小
解决方法:给 div height:0; 并且 overflow:hidden;

5.子级撑开父级

* { margin:0; padding:0; }
div {
    /*加*/
    overflow:hidden;
    width:200px;
    height:200px;
    margin:100px auto;
    border:10px solid red;
 }
h3 {
    width:300px;
    height:300px;
    background:yellow;
 }
 <!--布局-->
 <div>
      <h3></h3>
 </div>

解决方法:给父级加 overflow:hidden;

6.IE6不支持子级margin值为负值

* { margin:0; padding:0; }
div {
     width:200px;
     height:200px;
     margin:100px auto;
     border:10px solid red;
 }
h3 {
     width:100px;
     height:100px;
     margin-left:-50px;
     background:#33C;
     /*加*/
     position:relative;
 }
<!--布局-->
 <div>
    <h3></h3>
</div>

解决方法: 子级身上加 position:relative;

7.3像素bug

* { margin:0; padding:0; }
div, h3 {
    width:200px;
    height:200px;
 }
div {
    /*加*/
    float:left;
    background:#06F; 
}
h3 { 
    /*加*/
    float:left; 
    background:#F90; 
}
<!--布局-->
<div></div>
<h3></h3>

解决方法:两个元素都浮动

8.line-height失效

* { margin:0; padding:0; }
ul {
     width:500px;
     margin:100px auto;
 }
li {
     list-style:none;
     height:60px;/*改*/
     line-height:50px;
     border:1px solid #000;
 }
/*加*/
input {
     height:16px;
     margin-top:22px
}
<!--布局-->
<ul>
    <li>
        <span>文字文字文字文字</span>
       <input type="text" />
   </li>
</ul>

bug产生原因:行内元素与行内块元素在同一行中,行内元素的line-height失效
解决方法:input 加 margin-top 等于 (父级高度-input高度)/2

9.png图半透明失效

 /*加*/
<!--[if IE 6]>
<script src="js/DD_belatedPNG.js"></script>
<script>   DD_belatedPNG.fix('.png');</script>
<![endif]-->
   <!--布局-->
   <img src="images/logo.png" class="png" >

解决方法:加一段只在IE6下执行的代码

10.注释bug

* { margin:0; padding:0; }
div {
    overflow:hidden;
    width:500px;
    margin:100px auto;
    border:1px solid red; 
}
span {
    float:left; 
    width:100%;
 }
  <!--布局-->
  <div>
      <span>ul li a span b strong</span>
      <!--注释注释注释注释注释注释-->
      <span>width height background</span>
      <span>width height background</span>
      <span>width height background</span>
      <span>width height background</span>
      <span>width height background</span>
      <span>width height background</span>
      <span>width height background</span>
</div>

bug产生原因: IE6下两个浮动元素,宽度都是width:100%,在浮动元素间加注释就会多出几个字;
解决方法:
a. 删除注释。但不彻底,浮动元素多了还是会出问题
b. 推荐:给元素加background:none;

11.不支持min-width

* { margin:0; padding:0; }
div {
    float:left; 
    min-width:200px;
    margin:100px auto;
    border:10px solid red;
    /*加*/
    _width:200px; 
    white-space:nowrap;
}
   <!--布局-->
   <div>文字文字</div>

解决方法:利用IE6子级能撑开父级的bug,给IE6加 _width:200px; white-space:nowrap;

12.伪类hover只支持a标签的使用

div:hover{ color:yellow;}
<!--布局-->
<div>文字文字</div>

解决方法:合理用a标签嵌套其他行内标签或者用javascript模拟a的hover效果;

13.select层级问题

* { margin:0; padding:0; }
select {
   width:100px;
    height:100px;
 }
div {
    position:absolute;
    top:0; left:0;
    width:200px; 
    height:200px; background:red;
 }
   <!--布局-->
   <select></select>
   <div></div>

解决方法:自己写一套 select 然后用 js 控制,原生的本来就不好看,且不容易修饰。

14.定位元素消失

.box {
     width:600px;
     height: 50px;
     color:#fff; 
     border: 1px solid red;
     zoom:1;
     position: relative; 
}
.box:after {
     display:block;
     content:'';
     clear: both; 
}
.box div {
     font-size:50px;
 }
.box1 {
     position:absolute;
     left:0; top:0;
     width:500px;
     height:50px;
     background:#f0f;
 }.box2 {
     overflow: hidden;
     display:inline;
     float:left;
     width:300px;
     height:30px;
     background:red;
 }
.box3 {
     overflow: hidden;
     display:inline;
     float:left;
     width:300px;
     height:30px;
     background:blue;
}
 <!--布局-->
 <div class="box"> 
     <div class="box1">box1</div>
     /*加*/
     <div></div>
     <div class="box2">box2</div>
     <div class="box3">box3</div>
 </div>

bug产生原因:IE6 下定位元素与浮动元素在同一个父级下紧挨着。定位的元素会消失;
解决方法:在定位元素与浮动元素之间放一个块标签即可解决。

15.ul+li+a做导航会掉下来

* { margin:0; padding:0; }
ul {
    overflow:hidden;
    zoom:1;
    background:red;
 }
li {
    display:inline;
    float:left;
    list-style:none;
    overflow:hidden;
 }
a {
    display:block;
    height:50px;
    line-height:50px;
    padding:0 50px;
    /*加*/
    width:100%;
 }
a:hover {
      background:blue;
      color:#fff;
    }
  <!--布局-->
   <ul class="clear">
      <li><a href="#">首页</a></li>
      <li><a href="#">身边团购</a></li>
      <li><a href="#">身边外卖</a></li>
   </ul>

bug 产生原因: a 标签没有 width,只有 padding 的时候,display:block就会出问题.
解决方法:给a标签加 width:100%;

16.ul浮动li不浮动

* { margin:0; padding:0; }
ul {
   display:inline;
   float:left;
   width:200px;
   border:1px solid red;
   }
li {
   display:inline;
   /*加*/
   float:left;
   width:100%;
   list-style:none;
}
  <!--布局-->
   <ul>
      <li><a href="#">新闻标题新闻标题新闻标题</a></li>
      <li><a href="#">新闻标题新闻标题新闻标题</a></li>
      <li><a href="#">新闻标题新闻标题新闻标题</a></li>
      <li><a href="#">新闻标题新闻标题新闻标题</a></li>
   </ul>

bug 产生原因: ul 浮动,li没有浮动
解决方法: li 也浮动

17.躲猫猫bug

.box{
     background:#0aa;
}
.float{
     float:left;
     border:1px solid #000;
}
.clear{
     /*加*/
     clear:both;
     border:1px solid red;
}
<!--布局-->
<div class="box">
   <div class="float">后面刮开有奖</div>
   <div class="float">再来一次</div>
   <div class="clear"></div>
</div>

bug产生原因:一个撑破了容器的浮动元素,如果在它之后有不浮动的内容,并且有一些定义了:hover的链接,当鼠标移到这些链接上时,在IE6下就会触发躲猫猫。
解决方法:
a.在未浮动的元素上添加clear: both;
b.触发包含了这些链接的容器的hasLayout,一个简单的方法就是给其定义height:1%。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容