04月28, 2017

【译】何时需要文档兼容模式(IE)

原文:http://www.zcfy.cc/article/103

Windows Internet Explorer的每个主要版本都会增加新功能,目的是让浏览器更好用、更安全、更符合行业标准。随着功能的增多,很多旧网站面临无法正确显示的风险。本文介绍Windows Internet Explorer近期版本的变化情况,以便大家明白为什么需要文档兼容模式。

如果你想简单,给网页添加HTML5文档声明就行了,这样所有支持的IE都会以标准模式显示它。更多信息,请参考Defining document compatibility.aspx)。

为了把风险降到最小,Microsoft Internet Explorer 6允许开发者选择Internet Explorer解释及显示网页的方式。默认是老旧模式(Quirks mode),就是让用户好像在使用旧版本浏览器(如IE5.5)查看网页一样。还有标准模式(也叫严格模式),使用最新的行业标准显示网页。而为了利用这一点,网页需要包含相应的<!DOCTYPE>.aspx)指令。

如果网页不包含<!DOCTYPE>.aspx)指令,IE6会以老旧模式显示它。如果网页包含了有效的<!DOCTYPE>指令,但该浏览器不认识,IE6会以标准模式显示它。因为当时很少有网页包含<!DOCTYPE>指令,所以这种兼容性切换效果非常好。因为这样开发者就有时间从容地决定什么时候迁移到标准模式。

过了一段时间,很多网站都依赖标准模式了。这些网站还会使用Internet Explorer 6的特性和行为来识别Internet Explorer。比如,Internet Explorer 6不支持通用选择器.aspx),于是一些网站就利用这一点,专门为Internet Explorer提供特殊内容。

Windows Internet Explorer 7新增的功能旨在更加全面地支持行业标准,例如支持通用选择器.aspx)。由于<!DOCTYPE>.aspx)指令只支持两种情况(老旧模式和标准模式),IE7标准模式就取代了IE6标准模式。

结果,那些依赖IE6标准模式(比如不支持通用选择器)的网站,就无法再检测IE的这个新版本。换句话说,原来专门给IE准备的内容就发不到IE7了,结果就是这些网站不能按预期效果显示。由于IE7只支持两种兼容模式,网站所有人被迫升级自己的网站去支持IE7模式。

Windows Internet Explorer 8增加了一些从未来标准中特选的功能,虽然是标准功能但还没有尘埃落定。由于某些功能的行为与之前发布的标准不完全相同,因此有必要让开发者选择自己的网页想支持哪个标准。于是 IE8引入了一个新概念,叫“文档兼容性”(document compatibility),允许开发者指定网站想要支持的IE的一个或多个版本号。文档兼容性给IE8增加了新的模式,比如IE8标准模式。

Windows Internet Explorer 9加入了更多对未来标准的支持,包括HTML5、CSS3、Scalable Vector Graphics (SVG) 1.1 (Second Edition),等等。由于当时这些标准还在制定过程中,某些行为后来发生了变化,而IE9在这些标准发布时都支持了最新的行为。正如你所料,这些行为只有在IE9标准模式下才能使用。

Internet Explorer 10支持更多的标准.aspx),同时也升级了老旧模式,以便与HTML5规范中描述的变化对应。而这也意味着,此时的老旧模式也支持标准模式下的很多特性。更多信息,请参考Interoperable HTML5 Quirks mode in Internet Explorer 10

如果你的网站在IE中显示不正确,要么重写网页以支持最新Web标准(推荐),要么就强制让新版本IE像旧版本一样显示网页。后一种情况下,可以使用meta.aspx)元素,在页面头部区域增加X-UA-Compatible属性。更多信息,请参考Specifying legacy document modes.aspx)。

相关内容

英文原文:https://msdn.microsoft.com/en-us/library/jj676916(v=vs.85).aspx

本文链接:http://lisongfeng.cn/post/understanding-the-need-for-document-compatibility-modes-internet-explorer.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。