文档模式:
这个概念是通过使用文档类型 doctype 切换实现的,最终的两种渲染模式是 混杂模式 (quirks mode)和 标准模式 (standards mode)。这两种模式的差别就是工作在不同版本渲染引擎环境下,混杂模式会让IE的行为与(包含非标准特性的)IE5相同,标准模式则让IE的行为更接近标准行为。这两种模式主要影响css内容的呈现,在某些情况下也会JavaScript的解释执行(后面会详细说到)。之后IE又提出一种 准标准模式 (almost standards mode),这种模式下的浏览器特性有很多都是符合标准,但也不尽然,不标准的地方体现在处理图片间隙的时候(在表格中使用图片时问题最明显)。标准模式和准标准模式非常接近,在检测文档模式时也不会发现什么不同,这里在提到标准模式时,指的是除混杂模式之外的其他模式。
文档类型DOCTYPE定义和用法:
可以决定浏览器在哪种模式下工作。
声明必须是HTML文档第一行,位于 html > 标签之前。 声明并不是HTML标签;它是指示web浏览器关于页面使用哪个HTML版本进行编写的指令,告知浏览器的解析器用什么文档类型规范来解析这个文档,针对每种规范浏览器同样也会选择对应的文档模式。 HTML4.01中, 声明引用DTD,因为HTML4.01基于SGML(标准通用标记语言,是现时常用的超文本格式的最高层次标准,是可以定义标记语言的元语言。HTML和XML派生于它。XML可以被认为是它的一个子集,XML的出现就是为了简化它以便用于更加通用的目的比如语义web,而HTML是它的一个应用)。DTD规定了标记语言的规则,让浏览器的渲染去遵守这个规则才能正确地呈现内容。但HTML5不是基于SGML的因此不需要引用DTD。
文档类型DOCTYPE的语法:
顶级元素 可用性 "注册//组织//类型 标签 定义//语言" "URL"
link > 标签一样,但 html 指定当前文档最外层标签,顶级元素,xml里面叫root(根)标签(比如 DOCTYPE note SYSTEM "Note.dtd" > ),html是html(比如html5举例 DOCTYPE html > )。通过document.doctype.name可获取 PUBLIC 说明指定的DTD文件是公共文件,相对私有文件来说的,也就是后面的url是任何人都可以访问的,也可以是SYSTEM(从本地系统加载的DTD文件)。 "-//W3C//DTD XHTML 1.0 Transitional//EN" 指定本html文件使用的DTD版本号,这个部只是针对html才有的。-/+指定组织是否由国际标准化组织ISO注册,+表示名称已注册,-表示组织名未注册。Internet工程任务组(IETF)和万维网协会(W3C)并非注册的ISO组织,所以html中的注册项为-。组织指的是该!DOCTYPE声明引用的DTD文件的创建和维护的团体是W3C组织。DTD为所引用的对象类型,XHTML 1.0表示公开文本描述,后面可附带版本号。Transitional表示文档类型定义是过渡型的,共三种下面介绍。EN表示指定的公开文本语言为英文。document.doctype.publicId可获取。 URL 指定所引用DTD对象的位置 ,document.doctype.systemId可获取。一个DTD文档包含元素定义的规则,元素间关系的定义规则,元素可使用的属性,可使用的实体和符号规则。
DTD(document type definition):
DTD标准可以理解成一种语法,这种语法规定了标签嵌套的规则,从而使HTML或XML的展示效果不会乱来。不同的DTD文件说明不同的标准DTD。DTD实际上是一个约束规则,规定文档中合法的都哪些元素,以及元素之间使用规则。
详解:
如果在文档开始处没有发现文档类型声明,则所有浏览器都会默认开启混杂模式,不同浏览器在这种模式下行为差异很大,如果不使用某些hack技术,跨浏览器的行为根本没有一致性可言。
(1).混杂模式:不引用任何文档类型定义,对文档的渲染影响很大。
(2).标准模式:可以使用下面任何一种文档类型来开启,使用严格型(strict)文档来触发。
//html
该DTD包含所有HTML元素和属性,但不包含展示性的和弃用的元素(比如font),不允许框架集(Framesets) HTML 4.01 严格型 --> DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" > HTML5 --> DOCTYPE html > //xhtml
该DTD包含所有HTML元素和属性,但不包含展示性的和弃用的元素(比如font),不允许框架集(Framesets)。必须以格式正确的XML来编写标记
XHTML 1.0严格型 -->
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >
查看更多关于浅谈HTML文档模式-venoral的详细内容...