html 声明的意义

时间:2022-04-25 18:54:21

现在有用于在Web浏览器中的布局引擎的三种模式:

1.quirks mode:  怪异模式

2.almost standards mode:标准模式 (只有极少数的怪异行为执行。)

3. full standards mode:完整标准模式(一直努力希望致力于描述HTML和CSS规范。)——In full standards mode , the behavior is (hopefully) the behavior described by the HTML and CSS specifications.)

 

DOCTYPE,简称为DTDs,是英文Document type的缩写,中文“文档类型”;

没有定义doctype会开启怪异模式。

对于HTML文件,浏览器使用DOCTYPE的文件,以决定是否处理它的怪癖模式或标准模式开始。

<!DOCTYPE html>
< html  >
   < head >
     < title >Hello World!</ title >
   </ head >
   < body >
   </ body  >
</ html  >
确保你的页面有一个DOCTYPE像上面的子,<! DOCTYPE html>,作为推荐的html5,可能是最简单的开启完整标准模式的。
早期版本的HTML标准推荐的其他变体,但所有现有浏览器今天将 DOCTYPE 作为完整的标准模式,甚至是这该死的IE6。
如果使用其他的DOCTYPE,可以选择个试试,会引发准标准模式和怪异模式。
早期版本的HTML标准对DOCTYPE给予了更多的含义,但是还没有浏览器使用其他的DOCTYPE来切换标准模式和怪异模式。
 
任何在DOCTYPE 前做的事,都将在IE9以上发生怪异模式。
 

XHTML

如果你为你的页面XHTML使用的application / xhtml + xml的 MIME类型的内容类型的 HTTP头,你并不需要一个DOCTYPE以使标准模式,因为这样的文件总是使用完整的标准模式。但是请注意,您的网页应用服务/ xhtml + xml的会造成Internet Explorer 8的显示一个下载对话框中显示您的网页,而不是一个未知格式,支持XHTML的第一个版本的Internet Explorer的Internet Explorer 9。

如果你提供的是XHTML,如内容使用text / html的 MIME类型,浏览器将读取HTML,你会需要的的DOCTYPE,以使用标准模式。

mozilla -html解析器

In quirks mode, we parsed HTML comments in a non-SGML way compatible with other browsers instead of treating "--" as the comment start and end delimiter.Obsolete since Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1) This quirk is now HTML5 conform and has been adopted in standards mode.

在怪异模式下,我们解析HTML注释中非SGML的方式,与其他浏览器兼容,而不是以“ - ”作为注释的开始和结束定界符来处理。过时以来的Gecko 2.0(火狐4 /雷鸟3.3 /组件2.1)的怪异模式跟现在的HTML5符合标准,在标准模式下已经通过。

“准标准”模式

“准标准”的渲染模式是完全一样的“标准”模式中的所有资料储存,它的工作原理就像“怪癖”模式:高度计算线框和一些行内元素在其中 ,一个常见的情况,这影响的布局表格单元格内的图像。这意味着,切片图像的表的布局是不太可能土崩瓦解基于Gecko的浏览器的渲染引擎在Mozilla 1.0.1或更高版本时,无论是“怪癖”或“准标准”模式的基础上。

更详细一点,有什么不同之处几乎标准模式大致是这样的:有没有非空白文本作为一个孩子,有没有边框,或保证金的行内框:

  • 不影响大小的行中(即,他们被忽略的line-height
  • 没有得到的高度(例如,为他们的背景)大于他们的后代,即使他们的字体大小是较大的(如果他们没有后代,他们是高度为零,在基线定位)

除了这个区别,“准标准”和“标准”模式是完全相同的布局和其他行为。

触发“准标准”

的文档类型,将触发“几乎标准”的模式是那些含有:

  • 公共标识符“ - / / W3C / / DTD XHTML 1.0 / / EN “
  • 公共标识符“ - / / W3C / / DTD XHTML 1.0框架集/ / EN “
  • 公共标志符“ - / / W3C / / DTD HTML 4.01过渡/ / EN “,系统标识符
  • 公共标识符“ - / / W3C / / DTD HTML 4.01框架集/ / EN “,系统标识符
  • IBM系统DOCTYPE“ http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd “

一个完整的DOCTYPE包含公共标识符和系统标识符。在文档类型的讨论中,很多人会为“URI”或“无URI是指一个DOCTYPE。” URI是系统标识符。例如,考虑下面的DOCTYPE:

<!DOCTYPE HTML PUBLIC“ -  / / W3C / / DTD HTML 4.01过渡/ / EN”
			“http://www.w3.org/TR/html4/loose.dtd”>

的部分如下:

  • 公共标识符:“ - / / W3C / / DTD HTML 4.01过渡/ / EN “
  • 系统标识符:“ http://www.w3.org/TR/html4/loose.dtd “

因此,任何一个URI(系统标识符)HTML 4.01 Transitional或框架集DOCTYPE将触发“几乎标准”的模式,任何XHTML 1.0 Transitional或框架集DOCTYPE,带或不带的URI。作者以外的IBM并不需要担心自定义DOCTYPE,也将触发“几乎标准”的模式。