首页 > 代码库 > HTML 文档模式

HTML 文档模式

    IE5.5 引入了文档模式的概念,它是通过文档类型(DOCTYPE)切换实现的。最初的两种文档模式是混杂模式(quirks mode)和标准模式(standards mode) 。混杂模式让IE的行为与IE5相同,而标准模式让IE的行为更接近标准行为。不同的模式主要影响CSS内容的呈现,在某些情况下,也会影响到JS的解释执行。后来IE又提出了一种准标准模式(almost standards mode),在这种模式下,浏览器特性很多都是复合标准的,但是还是不完全标准。

    如果在文档开始处没有发现文档类型声明,则所有浏览器都会默认开启混杂模式。但采用混杂模式不是什么值得推荐的做法,因为不同浏览器在这种模式下的行为差异非常大,如果不使用某些 hack 技术,跨浏览器的行为根本就没有一致性可言。在Html5中,对于文档类型已经统一,直接写法是<!DOCTYPE html>即可

    对于标准模式,可以通过使用下面任何一种文档类型来开启:

<!-- HTML 4.01 严格型 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "
 
<!-- XHTML 1.0 严格型 -->
<!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0Strict//EN" "<!-- HTML 5 -->
<!DOCTYPE html>

    而对于准标准模式,则可以通过使用过渡型(transitional)或框架集型(frameset)文档类型来触发,如下所示:

<!-- HTML 4.01 过渡型 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " 

<!-- HTML 4.01 框架集型 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" " 

<!-- XHTML 1.0 过渡型 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " 

<!-- XHTML 1.0 框架集型 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "

    准标准模式与标准模式非常接近,它们的差异几乎可以忽略不计。因此,当有人提到“标准模式”时,有可能是指这两种模式中的任何一种。而且,检测文档模式时也不会发现什么不同。一般提到标准模式时,指的是除混杂模式之外的其他模式。


HTML 文档模式