十步解决IE6的各种疑难杂症
2010-02-22 10:46:04 来源:WEB开发网核心提示:虽然我也很想IE6早点死,但个人的主观能动性毕竟太有限了,十步解决IE6的各种疑难杂症,我们唯一能做的是用一些手段减轻IE6带来的痛苦,1、使用文档类型尽量使用最严格的文档类型,目标伪类, min-width与max-width,确保你的页面运行于标准模式下,虽然用了它们
虽然我也很想IE6早点死,但个人的主观能动性毕竟太有限了,我们唯一能做的是用一些手段减轻IE6带来的痛苦。
1、使用文档类型
尽量使用最严格的文档类型,确保你的页面运行于标准模式下。虽然用了它们,你可能不能用许多标签,如b,s,font等,但它们都可以用CSS来代替。
1.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2."http://www.w3.org/TR/html4/strict.dtd">
或者最简单的<!doctype html">,这是HTML5唯一认可的文档类型,浏览器会自动转换为上面那个。也不要用xhtml的文档声明了,它原本想搞到html成为过渡的产品,殊不知自己才是匆匆的过客。而且用了它,元素的nodeName可能会区分大小写,非常麻烦。
2、使用position: relative
在布局中,永远是先考虑定位布局然后才到浮动布局。IE的浮动模型令人狂抓。
3、使用display:inline
如果你一定要使用浮动,那请在后面跟紧display:inline。因为IE6存在一个很容易发生的bug。只要对块状容器元素设置了float和与float相同方向的margin值就会出现。如我们给div元素设置了float:left 和 margin-left:100px ,在IE6中就会变成margin-left:200px。
4、请不要使用注释节点
这里涉及两个可恶性的东西。一个是多余字符bug,可以参考本博客园的杨正祎(阿一)大大的这篇文章《歌剧院魅影bug 》 。第二个是IE全系列的查找API的bug,document.all,document.getElementsByTagName与document.querySelectorAll都有可能返回注释节点。
5、悬浮效果记得使用带有href属性的a元素套嵌
在IE:hover只对a标签有效,而且这标签一定显式设置了href属性。
6、样式设置中不要使用百分比
IE在计算百分比时存在问题。
7、让元素获取hasLayout
详情请自行google百度这一篇伟大的学术研究《On having layout》。我们可以用el.currentStyle.hasLayout来检测它是否获得layout,一个获得layout的万能方法是zoom:1。
8、严格遵守(x)html的套嵌规则
套嵌规则是定义在文档类型中,文档是按照它来解析的,虽然现在的浏览器都很醒目,但为了防止它们发神经,还是小心为妙。另,虽然对于某些元素会自动闭合,我们还是自己闭合吧,养成个好习惯是非常重要的。
9、提高你的javascrip水平
IE6许多东西都不支持或支持不好,但我们几乎都可以用Javascript来模拟,如各种关系伪类,子元素过滤伪类,属性伪类,目标伪类, min-width与max-width,PNG的透明问题……
10、多来我的博客摸鱼
凑个整数讨个吉利。如发现什么好东西或bug我会第一时间报道给你们滴~~~^_^
1、使用文档类型
尽量使用最严格的文档类型,确保你的页面运行于标准模式下。虽然用了它们,你可能不能用许多标签,如b,s,font等,但它们都可以用CSS来代替。
1.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2."http://www.w3.org/TR/html4/strict.dtd">
或者最简单的<!doctype html">,这是HTML5唯一认可的文档类型,浏览器会自动转换为上面那个。也不要用xhtml的文档声明了,它原本想搞到html成为过渡的产品,殊不知自己才是匆匆的过客。而且用了它,元素的nodeName可能会区分大小写,非常麻烦。
2、使用position: relative
在布局中,永远是先考虑定位布局然后才到浮动布局。IE的浮动模型令人狂抓。
3、使用display:inline
如果你一定要使用浮动,那请在后面跟紧display:inline。因为IE6存在一个很容易发生的bug。只要对块状容器元素设置了float和与float相同方向的margin值就会出现。如我们给div元素设置了float:left 和 margin-left:100px ,在IE6中就会变成margin-left:200px。
4、请不要使用注释节点
这里涉及两个可恶性的东西。一个是多余字符bug,可以参考本博客园的杨正祎(阿一)大大的这篇文章《歌剧院魅影bug 》 。第二个是IE全系列的查找API的bug,document.all,document.getElementsByTagName与document.querySelectorAll都有可能返回注释节点。
5、悬浮效果记得使用带有href属性的a元素套嵌
在IE:hover只对a标签有效,而且这标签一定显式设置了href属性。
6、样式设置中不要使用百分比
IE在计算百分比时存在问题。
7、让元素获取hasLayout
详情请自行google百度这一篇伟大的学术研究《On having layout》。我们可以用el.currentStyle.hasLayout来检测它是否获得layout,一个获得layout的万能方法是zoom:1。
8、严格遵守(x)html的套嵌规则
套嵌规则是定义在文档类型中,文档是按照它来解析的,虽然现在的浏览器都很醒目,但为了防止它们发神经,还是小心为妙。另,虽然对于某些元素会自动闭合,我们还是自己闭合吧,养成个好习惯是非常重要的。
9、提高你的javascrip水平
IE6许多东西都不支持或支持不好,但我们几乎都可以用Javascript来模拟,如各种关系伪类,子元素过滤伪类,属性伪类,目标伪类, min-width与max-width,PNG的透明问题……
10、多来我的博客摸鱼
凑个整数讨个吉利。如发现什么好东西或bug我会第一时间报道给你们滴~~~^_^
- ››解决flash 中无法导出swf文件的方法
- ››解决"ios模拟器未能安装此应用程序"办法...
- ››解决jquery easyui easyloader加载外部js文件失败...
- ››解决无法使用Android SDK Manager下载SDK开发包的...
- ››解决网页内容无法复制
- ››解决Android手机在开发调试时logcat不显示输出信息...
- ››解决Windows 8操作系统假死的方法
- ››解决ubuntu 不识别 android 设备 方法
- ››解决ubuntu server sudo出现sudo:must be setuid ...
- ››解决数据库 Table 'content_tags' is mar...
- ››解决FF浏览器和IE下载文件乱码问题
- ››解决Firefox/Opera 不支持 onselectstart事件
更多精彩
赞助商链接