ie7以下浏览器可以用* 来解决兼容性
测试工具 (ietester)
IE6中绝对定位位置错误
问题描述:在ie6中,如果参照物没有触发haslayout ,那么绝对定位的容器的left和bottom就会有问题。
解决办法:在相对定位的父容器上加入 zoom:1 来触发ie的haslayout即可解决。
小技巧:通常我们在设置一个容器为position:relative的时候 ,都会加上zoom:1来解决很多ie下的问题。
IE6中绝对定位1像素偏差
问题描述:在 IE6 下定位元素的父级宽高都为奇数时,那么在 IE6 下定位元素的 right和bottom都有1像素的偏差。
解决办法:设为偶数。
IE6浮动元素双边距bug
问题描述:IE6下块元素有浮动和横向margin的时候,横向的margin值被放大成两倍。
解决办法:给浮动元素加 display:inline。
IE67下li底部间隙的BUG
问题描述:在ie67下,li本身没浮动,但是li的内容有浮动,li下边就会产生一个间隙。
解决办法:给li设置 float:left或者给li加vertical-align:top。
IE6下最小高度问题
问题描述:在IE6下高度小于19px的元素,高度会被当做19px来处理。
解决办法:设置font-size:0;
ie6 下子级的相对定位
问题描述:ie6 下父级的overflow:hidden;是包不住子级的相对定位的。
解决办法:父级也设为相对定位。
在IE6下子元素margin问题
问题描述:在IE6下父级有边框的时候,子元素的margin值消失。
解决办法:触发父级的haslayout。
在IE6下的文字溢出BUG
问题描述:子元素的宽度和父级的宽度相差小于3px的时候或两个浮动元素中间有注释或者内嵌元素。
解决办法:用div把注释或者内嵌元素用div包起来。
绝对定位元素消失
问题描述:当浮动元素和绝对定位元素是并列关系的时候,在IE6下绝对定位元素会消失。
解决办法:给定位元素外面包个div。
表单控件1px间隙
问题描述:在IE6,7下输入类型的表单控件上下各有1px的间隙。
解决办法:给input加浮动。
IE下z-index的bug
在IE浏览器中,定位元素的z-index层级是相对于各自的父级容器,所以会导致z-index出现错误的表现。解决方法是给其父级元素定义z-index,有些情况下还需要定义position:relative。
文本重复Bug
在IE6中,一些隐藏的元素(如注释、display:none;的元素)被包含在一个浮动元素里,就有可能引发文本重复bug。解决办法:给浮动元素添加display:inline;。
终极方法:条件注释
缺点是在IE浏览器下可能会增加额外的HTTP请求数。