文档声明类型(DTD)

一、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

     严格型的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编写网页,而不必担心将来出现兼容性问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值