ie6兼容性问题汇总

1、取屏幕高宽信息
之前在ie8使用document.documentElement.clientHeight取值,该值在ie6中为0.后改成:
clientHeight = document.documentElement.clientHeight;
if(clientHeight == 0) {
        // 支持ie6/7/8/9/10
    clientHeight = $("body")[0].clientHeight;
}
参考:http://caibaojian.com/js-name.html

2、div定义了很小的高度,但是页面显示高度依然很高,即使改成1px依然还高。
比如定义一个高度为1px的分割线条div,需要在该div的css样式中添加font-size: 0px;才能有效果。

3、z-index=9999也无效的问题
ie6中,z-index是相对自己的父元素才有效果,所以需要从最顶层的div就开始定义z-index属性,逐层增大(遇到select控件时无效,select会浮在最上面)。

参考:http://m.wufangbo.com/ie6-ie7-z-index-bug/

4、margin-left: 4%;会显示margin-left: 8%;的效果,相当于是定义值2的倍效果。
在css中增加display: inline;属性

5、li的onclick时,只能点击文字时才能触发事件,点文字右边留白的地方无效果(ie8点留白的可以触发onclick)。
在li的样式中增加width: 100%;

6、设置checkbox和radio的checked无效
需要使用checkbox.defaultChecked = true;
参考:http://www.daimajiayuan.com/sitejs-12699-1.html

7、png图片透明
用Photoshop把png24的转成png8的,可能有毛边(用fireworks转的效果比Photoshop效果好)。
参考:http://www.daimajiayuan.com/sitejs-12699-1.html

8、在模态窗口模式下,把js拼接的html内容append到父元素时,a标签的onclick事件在ie8下无效,在ie6下又弹出空白页,如下图:


html内容如:
<div><a href="javascript:alert(1);" onclick="javascript:alert(2);"></div>,
在ie8下会执行alert(1)。
在ie6下会先执行alert(2),再执行alert(1)。
最终改造成:
<div><a taget="_parent" href="javascript:alert(1);" onclick="javascript:alert(2);return false;"></div>
增加taget="_parent"是为了避免在ie6下弹出空白页。
onclick事件后增加return false;是避免再执行alert(1),ie6下a标签的执行顺序是先执行onclick,再执行href,在onclick增加return false;后就不再执行href事件了。
参考:http://www.cnblogs.com/guanjie20/archive/2011/02/12/1952212.html

9、ie6不支持selected = true;方式,报无法设置selected属性
注:在通过ajax刷新级联下拉框时,通过jquery设置selected = true;时报错,解决方式是在级联下拉框拼接时处理:
if (selectedText == resp.data[i].value) {
    // 添加选项,并选中
    jo.append(‘<option value="‘ + resp.data[i].rowId + ‘" selected="selected">‘ + resp.data[i].value + ‘</option>‘);
} else {
    // 添加选项
    jo.append(‘<option value="‘ + resp.data[i].rowId + ‘">‘ + resp.data[i].value + ‘</option>‘);
}

时间: 2024-10-11 21:41:11

ie6兼容性问题汇总的相关文章

浏览器兼容性问题汇总

# 浏览器兼容性问题汇总 ## 问题1 ### first-child ## <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> div p:first-child { color: red; } </style> </head> <

IE6兼容性问题IE6常见bug

IE6兼容性问题及IE6常见bug详细汇总 来源:互联网 作者:佚名 时间:03-31 16:03:45 [大 中 小] IE6的兼容性问题一直都是前端工程师的恶梦,为了早早脱离这种困境,本文整理了一些相关兼容性的知识,感兴趣的朋友可以参考下哈,希望可以帮助到你 1.IE6怪异解析之padding与border算入宽高 原因:未加文档声明造成非盒模型解析 解决方法:加入文档声明<!doctype html> 2.IE6在块元素.左右浮动.设定marin时造成margin双倍(双边距) 解决方法

【转】浏览器兼容性问题汇总

浏览器兼容性问题汇总 1:margin-left在IE6不生效(复现条件:块状元素.浮动.margin-left) ---------解决方法:http://www.seostudying.com/1233.html 2: position:fixed 在ie6 .ie7(quirk) . ie8(quirk)下被当成错误处理.-----------解决方法:http://blog.sina.com.cn/s/blog_106f3d140100yaok.html 解决思路:用 _position

10要点解决IE6兼容性问题

吼吼,最近在学兼容问题,觉得学得不好,就百度了一些资料. 1.使用声明 你必须经常在html网页头部放置一个声明,推荐使用严格的标准.例如 <!DOCTYPEHTMLPUBLIC“-//W3C//DTDHTML4.01//EN” "http://www.w3.org/TR/html4/strict.dtd”> or,forXHTML: <!DOCTYPEhtmlPUBLIC“-//W3C//DTDXHTML1.0Strict//EN” "http://www.w3.o

解决IE6兼容性问题的十一大技巧

10要点解决IE6兼容性问题 1.使用声明 你必须经常在html网页头部放置一个声明,推荐使用严格的标准.例如 <!DOCTYPEHTMLPUBLIC“-//W3C//DTDHTML4.01//EN” "http://www.w3.org/TR/html4/strict.dtd”>or,forXHTML: <!DOCTYPEhtmlPUBLIC“-//W3C//DTDXHTML1.0Strict//EN” "http://www.w3.org/TR/xhtml1/DT

IE6兼容性问题及IE6常见bug详细汇总(转)

IE6的兼容性问题一直都是前端工程师的恶梦,为了早早脱离这种困境,本文整理了一些相关兼容性的知识,感兴趣的朋友可以参考下哈,希望可以帮助到你. 1.IE6怪异解析之padding与border算入宽高 原因:未加文档声明造成非盒模型解析 解决方法:加入文档声明<!doctype html> 2.IE6在块元素.左右浮动.设定marin时造成margin双倍(双边距) 解决方法:display:inline 3.以下三种其实是同一种bug,其实也不算是个bug,举个例子:父标签高度20,子标签1

IE6兼容性问题及IE6常见bug详细汇总

转载地址:http://www.jb51.net/css/76894.html 1.IE6怪异解析之padding与border算入宽高 原因:未加文档声明造成非盒模型解析 解决方法:加入文档声明<!doctype html> 2.IE6在块元素.左右浮动.设定marin时造成margin双倍(双边距) 解决方法:display:inline 3.以下三种其实是同一种bug,其实也不算是个bug,举个例子:父标签高度20,子标签11,垂直居中,20-11=9,9要分给文字的上面与下面,怎么分?

前端工程师IE6兼容性问题随笔(未完待续)

1 height.在IE6下元素高度小于19px的时候,会被当做19px来处理.解决办法:用overflow:hidden;来处理.box{height:2px;background:red;overflow:hidden;} 2 1px dotted(1px的点线)在IE6下不支持解决办法:且背景图片平铺 3 margin.兼容性问题的爆发点.无法触发haslayout,无法解决margin的传递,在IE6下父级有边框的时候(也 就是设置了border的三元素的时候),子元素的margin值会

【Javascript】 IE8兼容性问题汇总

本章是在网页开发过程中所碰到的IE8兼容性问题做一个汇总. 尼玛太坑了,屡次踩坑,总是没记性.而且更坑的是IE8的开发者工具太难用了,想调试都调试不出来. 不得已只好记录下来,下次出问题了好方便排查. JS脚本中,必须遵循以下规则,否则都将导致JS脚本在IE8 错误. 1.所有js脚本的语句结束之后,必须以分号结束. 2.数组(Array)对象声明或赋值时,注意不能有多余的逗号(,)如: var arrNum = [1,2,4,]; var arrStr = [ {key:1}, {key:2}