用doctype激活浏览器模式

作者:秦歌 来源:随网之舞 时间:2009-06-15 19:02:00 

为了处理根据Web标准创作的网页和根据盛行于20世纪90年代末的旧时实践创作的网页,当代的Web浏览器实现了各种不同的引擎模式。本文说明了那些模式是什么以及如何触发它们。

原文:Henri SivonenActivating Browser Modes with Doctype

文档范围

本文包括的模式转换(mode switching)适用于Firefox和其他基于Gecko的浏览器,Safari、Chrome和其他基于Webkit的浏览器,Opera、 Konqueror、Mac版Internet Explorer、Windows版Internet Explorer和内嵌IE的浏览器。避免提及浏览器引擎的名字,取而代之的是使用该引擎最知名浏览器的名字。

本文着重介绍模式的选择机制,而不是记录每个模式的确切行为。


模式

以下是各种不同的模式:

内容类型为text/html的模式

text/html内容的模式选择取决于doctype嗅探(doctype sniffing,本文后面有讨论)。在IE8中,模式也取决于其他因素。然而在IE8的默认情况下,那些不在微软提供黑名单上的非局域网(non- intranet)站点的模式取决于文档类型。

再怎么强调每个浏览器中模式精确行为的不同也是不过分的,即使本文中进行了统一的讨论。

  • 怪癖模式(Quirks Mode)

  • 怪癖模式中,为了避免“破坏”那些根据盛行于20世纪90年代末的旧时实践创作的页面,浏览器违背了当代的Web格式规范。不同的浏览器实现了不同的怪癖行为。Internet Explorer6、7和8中,怪癖模式有效地冻结在IE5.5 。其他浏览器中,怪癖模式是对几乎标准模式的少量偏移。

  • 如果正在创作新网页,你应该符合相关的规范(特别是CSS2.1)且使用标准模式。


  • 标准模式(Standards Mode)

  • 标准模式中,浏览器尝试给符合标准的文档在规范上的正确处理达到在指定浏览器中的程度。

  • 不同的浏览器遵循不同的阶段,所以标准模式也不是一个单一目标。

  • HTML5把这种模式叫“非怪癖模式(no quirks mode)”

  • 几乎标准模式(Almost Standards Mode)

  • irefox、Safari、Chrome、Opera(从7.5开始)和IE8也有个叫“几乎标准模式”的模式,它按照传统的做法来实现表格单元格的垂直尺寸而不是严格的遵照CSS2规范。Mac IE5、Windows IE6和7、Opera7.5以前版本和Konqueror无需几乎标准模式,因为它们至少没有在各自的标准模式下严格遵循CSS2规范来实现表格单元格垂直尺寸。实际上,它们的标准模式更接近Mozilla的几乎标准模式而不是Mozilla的标准模式。

  • HTML5把这种模式叫着“受限怪癖模式(limited quirks mode)”。


  • IE7模式

  • IE8有个模式主要是冻结了IE7标准模式的副本。其他浏览器没有像这样的模式,且该模式也未被HTML5指定。

内容类型为application/xhtml+xml的模式(XML模式)

Firefox、Safari、Chrome和Opera中,application/xhtml+xml HTTP内容类型(不是meta元素也不是doctype!)会触发XML模式。在XML模式中,浏览器尝试给XML文档在规范上的正确处理达到在制定浏览器中的程度。

E6、7和8不支持application/xhtml+xml,Mac IE5也如此。

基于WebKit的Nokia S60 浏览器中,application/xhtml+xml HTTP内容类型不能触发XML模式,因为在移动的围墙花园(mobile walled gardens)中关注点是对不规范内容的兼容性。(旧式的“移动浏览器”无法使用真正的XML解析器,因为不规范内容已被标记为XML。)

由于没有充分地测试Konqueror,我无法确切说出在这个浏览器中会发生什么。

标签:doctype,内容,浏览器,Firefox,模式
0
投稿

猜你喜欢

  • 可以让程序告诉我详细的页面错误和数据库连接错误吗?

    2009-11-01 18:01:00
  • 教你隐藏ACCESS数据库的表名

    2008-05-09 19:45:00
  • 求英文字母或数字或下划线或汉字的js正则表达式

    2009-08-04 17:59:00
  • 用户的期望以及背后真正的需求

    2009-06-19 12:39:00
  • MySQL两种识别是否有中文字符的方法

    2011-01-04 20:11:00
  • IE9报“DOM Exception: INVALID_CHARACTER_ERR (5)”错误的原因及解决办法

    2011-09-01 19:11:07
  • QQ影音感念亲恩皮肤,不只是大按钮这么简单

    2009-01-04 14:16:00
  • 去掉CSS赘余代码,CSS可以更简洁

    2008-11-05 13:07:00
  • 交互设计实用指南系列(8)—深广度平衡

    2010-02-01 12:59:00
  • SQL SERVER的字段类型介绍

    2008-05-23 13:27:00
  • 利用色轮选择颜色搭配[译]

    2009-10-31 18:24:00
  • 如何编写TOP10之类的排行榜?

    2009-11-07 18:45:00
  • asp如何制作一个弹出式的调查窗口?

    2010-06-29 21:24:00
  • ASP读取日期单日期自动补零函数代码

    2011-02-20 10:39:00
  • Dreamweaver技巧50问

    2008-10-16 14:00:00
  • asp如何准确获知对方来访问的时间和URL?

    2010-07-07 12:25:00
  • Win7 x64 IIS运行ASP+Access故障完美解决方法(转)

    2012-03-27 18:30:35
  • 纯ASP结合VML生成完美图-柱图

    2010-05-11 16:48:00
  • 如何在Access 2007数据库中添加附件

    2008-11-21 12:32:00
  • Web2.0 的视觉设计

    2007-10-24 20:12:00
  • asp之家 网络编程 m.aspxhome.com