当前位置: 首页 > 图文教程 > 网页制作 > HTML/XHTML教程 > 网页制作教程:单独对IE6进行兼容

HTML/XHTML教程
XHTML中不再使用HTML中的一些废弃元素
语义化的HTML结构怎么理解
Web 标准学习 理解结构和表现相分离
html5 标签
HTML5 新事件 小结
HTML5 b和i标记将被赋予真正的语义
HTML是网页制作者必须要学习掌握的
HTML DOCTYPE的缩写
Readonly和Disabled的区别
16进制颜色代码(完全)
H标记要在网页制作中合理使用
abbr标记和acronym标记
知名浏览器对DOCTYPE模式的选择机制
用标准dl,dt,dd标签抛弃table列表
html 标签ID可以是变量
iframe 自适应大小实现代码
HTML5 解析规则分析
HTML减肥 精简HTML标记制作网页
HTML5 File API改善网页上传功能
HTML 5 Reset Stylesheet

HTML/XHTML教程 中的 网页制作教程:单独对IE6进行兼容


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-30   浏览: 162 ::
收藏到网摘: n/a

原文:Ultimate IE6 Cheatsheet: How To Fix 25+ Internet Explorer 6 Bugs
翻译:http://www.vfresh.org/w3c/727(译文对原文进行了补充)

兼容IE6的第一步就是单独对IE进行兼容,你针对IE6所写的代码只影响IE6;有几种方法可以区分开IE6:IE特有条件注释、CSS选择器、JavaScript,我们将逐一讨论。

使用IE特有条件注释

微软给IE添加了条件注释以区分不同版本,任何东西都可以塞进条件注释里:标签、JavaScript、js文件、css、内联样式。可以使用条件注释来针对某一个IE浏览器版本来编写代码。

规则如下:(译注:可参考IE 特有注释(hack)

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

使用条件注释加载css的好处是这些样式是独立于其他css文件的,因此不会在编写兼容代码时弄得一团糟;而且当IE6的市场份额降低到不需要兼容时,可以快速的清理掉。

使用条件注释的唯一缺点是在IE浏览器下会增加额外的HTTP请求数,所以需要权衡是否这样做。但我不建议使用条件注释加载外部js文件,因为js文件会造成阻滞,在js未加载完之前其余文件都不会被加载;对于js请使用JavaScript程序来区分浏览器而非条件注释。

使用CSS选择器区分开IE6

如果你不打算使用条件注释,CSS选择器是另外一个区分开IE6的办法,IE6不支持子选择器;先针对IE6使用常规申明CSS选择器,然后再用子选择器针对IE7+及其他浏览器。

示例:

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

这个方法的缺点是容易把样式表弄得一团糟,所以一定要写好注释说明。
在示例中,针对IE6写的样式在其他浏览器中也会执行,但(标准浏览器中)之后的子选择器覆盖了之前的申明,而IE6不支持子选择器所以忽略了它。

扩展阅读:

使用JavaScript区分开IE6

如果你想要使用JavaScript区分开IE6,请看示例:

//原生JavaScript
if(typeof document.body.style.maxHeight === "undefined") {
    alert('IE6 Detected');
}
//MooTools(框架)
if (Browser.Engine.trident4) {
    alert('IE6 Detected');
}
//jQuery(框架)
if (($.browser.msie) && ($.browser.version == "6.0")){
    alert('IE6 Detected');
}

扩展阅读: