定义和用法

  1. <!DOCTYPE>申明必须是HTML文档的第一行,位于html标签之前
  2. <!DOCTYPE>不是html标签,它声明文档的解析类型,避免怪异模式, 在HTML4.01中,<!DOCTYPE>声明引用DTD,因为HTML 4.01基于SGML。DTD规定了标记语言的规则,这样浏览器才能正确的呈现内容。
  3. HTML5不基于SGML,所以不需要引用DTD

HTML4.01与HTML5之间的差异

在HTML4.01中有3中<!DOCTYPE>声明。HTML 5只有一种声明

提示:<!DOCTYPE>没有结束标签,对大小写不敏感,可以使用W3C验证器来检查是否编写了有效的html/xhtml文档

常用的DOCTYPE声明

HTML 4.01 strict:

该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

HTML 4.01 Transitional:

该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">

HTML 4.01 Frameset:

该 DTD 等同于 HTML 4.01 Transitional,但允许框架集内容。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" 
"http://www.w3.org/TR/html4/frameset.dtd">

模式触发

  • 触发标准模式:
    1. 加doctype声明
    2. 设置X-UA-Compatible触发
  • 触发怪异模式:
    1. 无doctype声明,定义旧的html版本
    2. 加XML声明,在IE6下触发
    3. 在XML声明和XHTML的DOCTYPE之间加入HTML注释,可在ie7下触发
<?xml version="1.0" encoding="utf-8"?>
		<!-- keep IE7 in quirks mode -->
		<!DOCTYPE ...>
4. <!--->放在<!DOCTYPE...>前面

更多内容请参阅:

http://www.cnblogs.com/yuzhongwusan/archive/2012/02/17/2355695.html