一、DTD声明的重要性
首先我们要知道当你在写一个页面时,文档类型声明是必须的。如果你没有声明文档类型,那么你的HTML将是不合法的,且大部分浏览器会启用“怪异模式”来处理你的页面,也就是浏览器会按照自己的方式去处理你的代码,而不是你想要的方式。另外,DTD声明还关系CSS会以什么模式解析,浏览器解析CSS有两种模式:标准模式(strict mode)和怪异模式(quirks mode,所谓的标准模式是指,浏览器按W3C标准解析执行代码;怪异模式则是使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以我们称之为怪异模式。DTD声明定义了标准文档的类型(标准模式解析),会使浏览器使用相应的方式加载网页并显示,忽略DTD声明,将使网页进入怪异模式(quirks mode)。
二、DTD(Document Type Declaration)
DOCTYPE声明文档类型,以便验证文档是否符合文档类型定义(DTD),同时指定了浏览器关于页面使用哪个HTML版本进行编写的指令。开发人员在编写完html代码后,要进行有效性验证。w3c提供了一个验证文档有效性的在线服务:http://validator.w3.org/。
DOCTYPE声明不是html标签,必须放在html文档的第一行,而且绝不能在它之前添加xml声明语句,否则在IE6会触发怪异模式。在HTML 4.0.1中,DOCTYPE引用了DTD,因为HTML 4.0.1基于SGML,这个版本是IE6开始兼容的。DTD规定了标记语言的规则,这样浏览器才能正确的呈现内容。HTML5不是基于SGML,所以不需要引用DTD,HTML5是IE9开始兼容的。
三、常用的 DOCTYPE 声明种类
DTD一共有7种:HTML4.0.1有六种,HTML5一种
HTML4.0.1里面有两种大的规范:普通和XHTML(X表示严格的,严格体现在必须使用小写标签、标签必须闭合、引号等)
普通的HTML规范和XHTML中又各规定了3种小规范:Strict(严格的,体现在一些标签不能使用,例如u)、Transitional(普通的)、Frameset(带有框架的页面)
1、HTML 4.01 Strict
首先我们要知道当你在写一个页面时,文档类型声明是必须的。如果你没有声明文档类型,那么你的HTML将是不合法的,且大部分浏览器会启用“怪异模式”来处理你的页面,也就是浏览器会按照自己的方式去处理你的代码,而不是你想要的方式。另外,DTD声明还关系CSS会以什么模式解析,浏览器解析CSS有两种模式:标准模式(strict mode)和怪异模式(quirks mode,所谓的标准模式是指,浏览器按W3C标准解析执行代码;怪异模式则是使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以我们称之为怪异模式。DTD声明定义了标准文档的类型(标准模式解析),会使浏览器使用相应的方式加载网页并显示,忽略DTD声明,将使网页进入怪异模式(quirks mode)。
二、DTD(Document Type Declaration)
DOCTYPE声明文档类型,以便验证文档是否符合文档类型定义(DTD),同时指定了浏览器关于页面使用哪个HTML版本进行编写的指令。开发人员在编写完html代码后,要进行有效性验证。w3c提供了一个验证文档有效性的在线服务:http://validator.w3.org/。
DOCTYPE声明不是html标签,必须放在html文档的第一行,而且绝不能在它之前添加xml声明语句,否则在IE6会触发怪异模式。在HTML 4.0.1中,DOCTYPE引用了DTD,因为HTML 4.0.1基于SGML,这个版本是IE6开始兼容的。DTD规定了标记语言的规则,这样浏览器才能正确的呈现内容。HTML5不是基于SGML,所以不需要引用DTD,HTML5是IE9开始兼容的。
三、常用的 DOCTYPE 声明种类
DTD一共有7种:HTML4.0.1有六种,HTML5一种
HTML4.0.1里面有两种大的规范:普通和XHTML(X表示严格的,严格体现在必须使用小写标签、标签必须闭合、引号等)
普通的HTML规范和XHTML中又各规定了3种小规范:Strict(严格的,体现在一些标签不能使用,例如u)、Transitional(普通的)、Frameset(带有框架的页面)
1、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">
2、HTML 4.01 Transitional
过渡型的DTD声明包含所有HTML元素和属性,包括展示性和弃用的元素。但不允许框架集。声明举例如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3、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">
4、XHTML 1.0 Strict
该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
5、XHTML 1.0 Transitional
该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6、XHTML 1.0 Frameset
该 DTD 等同于 XHTML 1.0 Transitional,但允许框架集内容。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
7、HTML5
<!DOCTYPE html>
HTML5极大简化了DOCTYPE声明,即使对于未实现HTML5标准的主流浏览器,都会检查文档类型声明,并将内容切换到标准模式,因此我们现在就可以使用HTML5编写网页,而不必担心将来出现兼容性问题。