ie6的兼容问题总结

1.浮动兼容性

1.1IE6下的双边距BUG

在IE6下,块元素有浮动和横向margin的时候,最边上元素的横向margin值会被放大成两倍

解决办法: display:inline;

1.2IE6,7下li的间隙

在IE6,7下li本身没浮动,但是li内容有浮动的时候,li下边就会产生4px的间隙

解决办法: 1.给li加浮动(但是width就变为由自适应内容,所以还要加宽度)

2.给li加vertical-align:top/middle/bottom;

ps:当li间隙问题,和最小高度问题都在时,只能用给li加浮动方法。

1.3ie67清除浮动需要触发haslayout才可以

.clear:after{content:‘‘;display:block;clear:both;}

.clear{zoom:1;}

after伪类: 元素内部末尾添加内容;

:after{content"添加的内容";} IE6,7下不兼容

zoom 缩放

a、触发 IE下 haslayout,使元素根据自身内容计算宽高。

b、FF 不支持;

1.4ie6,7下左边元素浮动,右边元素通过margin并到一行,会出现3像素bug。

解决方法:通过浮动并在一行

1.5当浮动元素和绝对定位元素是并列关系的时候,在IE6下绝对定位元素会消失

解决办法:

给定位元素外面包个div

1.6在IE6下的文字溢出BUG

子元素的宽度和父级的宽度相差小于3px的时候,两个浮动元素中间有注释或者内嵌元素的时候,ie6下文字会溢出

解决办法:用div把注释或者内嵌元素用div包起来

 1 <style>
 2
 3 .wrap{ width:300px;}
 4
 5 .left{float:left;}
 6
 7 .right{width:300px;float:right;}
 8
 9 </style>
10
11 <div class="wrap">
12
13   <div class="left"></div>
14
15     <div><!-- IE6下的文字溢出BUG --><span></span></div>
16
17     <div class="right">范德萨范德萨范德萨</div>
18
19 </div>

2.定位问题

2.1ie6下面父级一定会包含住子级,当子级高度比父级高时,子级会把父级高度撑开

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

问题:当子级有position:relative;时,父级的overflow是包不住子级的relative的。(解决方法:给父级也加一个position;)

2.2position:absolute;宽高奇数问题

在 IE6 下定位元素的父级宽高都为奇数那么在 IE6 下定位元素的 right 和 bottom 都有1像素的偏差。

2.3固定定位ie6下不兼容

3.表单问题

3.1在IE6,7下输入类型的表单控件上下各有1px的间隙

解决办法:给input加浮动

3.2在IE6,7下输入类型的表单控件加border:none;

解决办法: 重置input的背景或者border:0;

3.3当inline-block与text-indent在IE6、7下相遇后

text-indent为负时,元素向左偏移,text-indent为正时,元素向右偏移。在这种情况下,元素的偏移量由text-indent和margin值决定,如:margin-left:-10px; text-indent:10px相当于margin-left:0; text-indent:0元素没有偏移。

input、select、button、textarea的默认display皆为inline-block。

解决方法一:ie67,用display:block;

解决方法二:用padding代替text-indent;

3.4ie6下面input背景图片滚动

解决方法:在外面套一层div,背景图片写在div里面,input背景透明或无。

3.5ie6下面label(radio、checkbox)不加for属性没有效果

<label><input type="checkbox" id="man">man</label>

3.6ie6下面textarea默认有滚动条

解决方法:textarea{overflow:auto;}

4.图片下方间隙问题

a、display:block; (改变标签本身特性)

b、vertical-align (完美方案)

5.ie6下最小高度问题

Ie6下最小高度小于20px会解析为20px

解决方法:

height:1px;overflow:hidden;

6.ie6body高度的问题

<div class="wrap">
2      <ul>
3          <li>fdasfd</li>
4          <li>fdsfds</li>
5          <li>fdfds</li>
6      </ul>
7 </div>

 1 .wrap{
 2     width:800px;
 3     height:200px;
 4     margin:200px auto;
 5     border:1px solid red;
 6     position:relative;
 7     overflow: hidden;
 8 }
 9 .wrap ul{
10     float: left;
11     position: relative;
12     left:50%;
13     top:50%;
14     border:1px solid red;
15     height:100px;
16 }
17 .wrap li{
18     float: left;
19     width:100px;
20     height:100px;
21     background:red;
22     position: relative;
23     left:-50%;
24     top:-50%;
25     margin-left:10px;
26     list-style: none;
27     _display:inline; /*ie6双边距*/
28     *overflow: hidden;/*ie7下面不支持宽度*/
29 }

在上面这个水平垂直居中浮动元素的时候遇到一个问题,就是如果不给ul加高度,那么li下面的top:-50%失效,为什么?

原因:一个对象是否可以使用百分比显示,取决于对象的父级对象

怎么才能支持百分比呢:

一般来说,要满足两个条件:

其一,父标签有高度可寻,就是向上遍历父标签要找到一个定值高度,如果中途有个height为auto或是没有设置height属性,则高度百分比不起作用;

其二,标签本身的属性,如果内联元素,则需要有浮动,绝对定位,固定定位之类属性让他支持宽高;

  上面li的向上偏移是相对于ul的,而ul没有高度,所以li就向上偏移不了。

同理,我们要做一个遮罩层{position:absolute;top:0;left:0;height:100%;width:100%;background:#000;opacity:0.3;filter:alpha(opacity:30);},需要给该遮罩层设置宽高100%,在ie67下面,虽然遮罩层的offsetParent(定位父级)是html,但是浏览器默认状态 下,是没有给body一个高度属性的,因此我们不给body设置height的话,遮罩层的高度也就不能用,所以当我们给遮罩层设置height:100%;时,不会产生任何效果,而当我们给body设置了100% 之后,遮罩层的height:100%便发生作用了。所以我们需要给ie6下面的body{height:100%;}

7. 1px dotted red;在ie6下不支持,表现的和1px dashed red一样

  解决方法:切背景平铺(就用dashed挺好看的)

8.在IE6下解决margin传递要触发haslayout

  在IE6下父级有边框的时候,子元素的margin值消失

  解决办法:触发父级的haslayout:zoom:1;

9.ie6下伪类只支持a标签

  注意书写顺序:a:link a:visited a:hover a:active

10.ie6当一行子元素占有的宽度之和和父级的宽度相差超过3px,或者有不满行状态的时候,最后一行子元素的下margin在IE6下就会失效

11.透明度opacity,ie8 以下不兼容

  filter:alpha(opacity:);

12.ie6下png不支持

  解决方法:js、滤镜(_background:none;_filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="XX.png", sizingMethod="crop");)

13.ie67非法嵌套的标签会被异常处理

  如:ul>li*4+p

  在标准浏览器下面p标签和li为兄弟关系

  Ie67下:p标签会被li吃掉,变为父子关系

14.ie67下面内容高度没有屏幕高时,也会有滚动条

  解决方法:overflow:auto;

15.IE6/7:躲猫猫bug

产生条件1:一个浮动元素后面跟着一个非浮动元素,接着是一个清理元素,所有元素都包含在一个有背景色或背景图片的父元素中。

解决办法:

1.不要在父容器里面使用背景或图片(要必须有背景的话,这个当然这个不是可行的)。

2.给容器指定一个行高。

3.将浮动元素和容器元素的position属性设置为relative。

产生条件2:一个撑破了容器的浮动元素,如果在他之后有不浮动的内容,并且有一些定义了:hover的 链接,当鼠标移到那些链接上时,在IE6下就会触发躲猫猫。

解决方法:
1.在(那个未浮动的)内容之后添加一个<span style=”clear: both;”> </span>
2.触发包含了这些链接的容器的hasLayout,一个简单的方法就是给其定义height:1%;

时间: 2024-10-12 03:42:13

ie6的兼容问题总结的相关文章

IE6的兼容问题

随着微软windows系统系列的推出,当初的windows xp系统渐渐淡出操作系统的舞台,被新的有活力的操作系统所代替.虽然它渐渐推出了我们的视线,但是在某些地方我们还是能看到他们的,仍然在使用, 所以对于做前端开发的人员一定要考虑到我们制作儿的网页与windows xp操作系统的兼容问题——就是与IE6的兼容问题. 现在的浏览器种类繁多,可以说我们前端开发的东西在很多浏览器上都能使用,一般没有多大的问题.可是IE6就是那么个性,它的兼容性问题一直让很多前期的前端开发人员头疼.偶们来看看IE6

IE6部分兼容问题

border-style:dotted 点线 IE6不兼容 (除了solid以外,其它都有兼容问题,不完全一样) a IE6 不支持a以外的所有标签伪类,IE6以上版本支持所有标签的hover伪类. inline-block IE6 7不支持块元素标签的inline-block 空标签清浮动 IE6 最小高度 19px:就是font-size=0后,IE6下还有2px偏差.通过设置overflow:hidden来隐藏设置高度以外的高度. after伪类 IE 6 7不支持after伪类清除浮动,

z-index属性在IE7和IE6的兼容问题

z-index属性在IE7和IE6的兼容问题:采用定位的元素有可能就会用到z-index属性,不过具有一定的浏览器兼容问题,不用问基本属于IE低版本浏览器的问题,因为它的前科实在太多了,虽然现在用低版本浏览器的用户越来越少,相信不出几年就会消失,但是毕竟现在还是存在的,下面就介绍一下如何解决z-index属性在IE7和IE6浏览器的兼容问题.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf

JQuery与IE6的兼容问题之&lt;Select&gt;

原文地址:http://hi.baidu.com/fengbaobao/item/403cf90be03ba131a2332ac2 在IE7,FF下页面经常会用如下语句对一个Select列表选择其中的值,但是该JQuery语句IE6不支持, $("#CarTrimSeries").get(0).value = '<%=seriesId %>'; $("#CarTrimSeries").attr("value",'<%=serie

IE6支持兼容min-width、max-width CSS样式属性

IE6支持兼容min-width.max-width CSS样式属性 让IE6支持max-width.IE6支持min-width样式 我们在写CSS的时候,常常会遇到让一个图片或一个布局不能超出设定一定宽度范围值,有时需要设置一个最小宽度,接下来由DIVCSS5为大家总结的解决IE6不支持min-width和不支持max-width的方法.以下为CSS 宽度之IE6支持最小宽度.最大宽度解决技巧(你可能需要进一步详细了解CSS width知识). 目录 IE6支持max-width解决方法 I

解决ie6不兼容透明图片

解决ie6不兼容透明图片有好多方法. 如果想同时解决兼容png8和png24的图片,建议同时引入pngfix.js和dd_belatedPng.js文件,如下: <!--[if IE 6]><script src="../js/pngfix.min.js"><script type="text/javascript" src="http:../js/DD_belatedPNG.js"></script&g

IE6/7兼容伪类、IE9以下兼容颜色渐变、IE8以下兼容nth:child(n)

1.IE6/7兼容伪类 _1.CSS部分:一个有冒号,一个是空格分隔.前者IE8+及其他现代浏览器:后者为IE6-7准备的 #test:before, #test before{ content: attr(data-content); width: 0; height: 0; } _2.HTML部分 <div id="test"  data-content=""></div> 设置content _3.JS部分 设置IE6/7 var $b

min-height最小高度的实现(兼容IE6、IE7、FF)(解决IE6不兼容min-height)

<!doctype html><html> <head> <meta charset="UTF-8"> <meta name="Author" content="胡超"> <title>super胡</title> <style> div{ background:#ccc; min-height:100px; /*高度最小值设置为:100px IE6不

IE6 的兼容相关问题

因为在实习公司要求兼容IE6+,所以将IE6相关的样式兼容问题列出,及解决方案. 1.让页面变丑的透明背景图片问题: HTML都为以下代码: <div class="img-png"></div> 一般情况下使用png格式图片作为背景图片CSS部分: 1.img-png{ 2 width:64px; 3 height:64px; 4 background: url("imgsss/day.png") no-repeat; 5} 效果图: ch

IE6下兼容问题(转载)

()1.终极方法:条件注释 <!--[if lte IE 6]> 这段文字仅显示在 IE6及IE6以下版本. <![endif]--> <!--[if gte IE 6]> 这段文字仅显示在 IE6及IE6以上版本. <![endif]--> <!--[if gt IE 6]> 这段文字仅显示在 IE6以上版本(不包含IE6). <![endif]--> <!--[if IE 5.5]> 这段文字仅显示在 IE5.5. &