Html-文档类型(DTD)和DOCTYPE

简介:

在正式介绍文档类型(DTD)和DOCTYPE之前,我们需要先了解HTML和XHTML的之间的区别,现在Html5已经慢慢的成为主流,之前的数十年一直都是Html4.01的天下,Html4.01于1999年成为标准后一直成为大多数人使用的Html版本。2000年的时候W3C发布了HTML4.01的XML版命名为XHTML1.0。Html4.01和XHTML1.0之间主要的区别就是遵守XML编码约定,标签闭合就是XML基础规范。XHTML1.1作为后来者更接近XML,但是跟XHTML1.0相比,XHTML1.0可以作为Html文档,XHTML1.1页面是作为XML发送给浏览器,即使XHTML1.1中只含有一个错误(未编码的&的符号),web浏览器无法显示页面,因为XHTML1.1不受欢迎。

Html5和XHTML2

Html是一种基于标准通用标记语言(SGML)的应用,XHTML则基于可扩展标记语言(XML),HTML和XHTML其实是平行发展的两个标准。本质上说,XHTML是一个过渡技术,结合了部分XML的强大功能及大多数HTML的简单特性。建立XHTML的目的就是实现HTML向XML的过渡。XML设计用来传送及携带数据信息,不用来表现或展示数据,HTML语言则用来表现数据。

XHTML只是在内容结构上改进原有的HTML系统,XHTML2.0也仅仅在XHTML1.1的基础上更加注重页面规范和可用性,缺乏交互性。在Web App大行其道的年代,XHTML2就不合时宜了,于是就催生了HTML5。 W3C无视Web设计人员的需求,仅从理论角度闭门造车,却扛着标准的大旗,引发了来自Opera、Apple以及Mozilla等浏览器厂商的反对声音。2004年,他们组建了一个以推动网络HTML5标准为目的的组织——网页超文本技术工作小组(Web Hypertext Application Technology Working Group,缩写为WHATWG)。
 
Html5目标是取代HTML4.01和XHTML1.0标准,旨在提高网页性能,增加页面交互。Html5吸取了XHTML2一些建议,包括一些用来改善文档结构的功能,比如,新的HTML标签header、footer、dialog、aside、figure等的使用,将使内容创作者更加语义地创建文档,之前的开发者在这些场合是一律使用div的。
 
W3C与WHATWG双方经过多年努力,终于在2006年达成妥协。2006年10月,Web之父、万维网联盟(W3C)主席、美国国家科学院院士蒂姆·伯纳斯-李(Tim Berners-Lee)发表了一篇博客文章表示,从HTML走向XML的路是行不通的(XHTML is dead)。2009年W3C明智的放弃了改进XHTML2.0标准的计划,选择了WHATWG的成果作为基础。事实上,XHTML在2002年更新之后的数年时间里,尽管发现了众多问题,但都没有去修改过。W3C在2014年10月29日,Html5标准规范终于制定完成。

文档类型(DTD)和DOCTYPE

文档类型定义(Document Type Definition)是一套关于标记符的语法规则,定义了XML或者HTML的特定版本中允许有什么,不允许有什么,在渲染解析页面的时候浏览器会根据这些规则检查页面的有效性并且采取相应的措施。关于DOCTYPE的三种风格,严格(strict),过渡(transitional)和框架集(frameset)。<!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前。

Html4.01 和XHTML1.0:

strict模式:

1
<! DOCTYPE  HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
1
2
<! DOCTYPE  html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

过渡(transitional)模式:

1
2
<! DOCTYPE  HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
1
2
<! DOCTYPE  html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

框架集(frameset):

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

框架集(frameset)用的情况比较少,strict风格的 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font),过渡(transitional)风格的DTD仍然使用已经废弃的元素,但是Html5中就不需要这么复杂了,只有一个DOCTYPE:

1
<! DOCTYPE  html>

浏览器厂商创建与标准兼容的浏览器时,他们希望确定向后兼容性,为了实现这一点他们创建两种呈现模式,标准模式和混杂模式(quirks mode),在标准模式中,浏览器根据规范呈现页面,在混杂模式中,页面以一种比较宽松的向后兼容的方式显示。Html4.01中的如果包含DTD的DOCTYPE都是以标准模式呈现,如果DOCTYPE不存在或者形式不正确会HTML和XHTML文档以混杂模式呈现。


本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/5027746.html,如需转载请自行联系原作者


相关文章
|
10天前
|
移动开发 前端开发 JavaScript
Twaver-HTML5基础学习(15)形状连线(ShapeLink)四种类型(直线、正交、二次贝塞尔、三次贝塞尔)
本文介绍了Twaver HTML5中的形状连线(ShapeLink),包括如何使用它以及如何添加控制点。文章详细解释了ShapeLink支持的四种连线类型:直线(lineto)、正交(orthogonalto)、二次贝塞尔曲线(quadto)和三次贝塞尔曲线(cubicto),并通过示例代码展示了如何在React组件中创建和配置ShapeLink。
31 3
|
10天前
|
移动开发 前端开发 JavaScript
Twaver-HTML5基础学习(14)连线(Link)连线类型(直线、延伸直线、正交直线)
本文介绍了Twaver HTML5中连线(Link)的不同类型,包括直线、延伸直线和正交直线,并通过示例代码展示了如何在React组件中设置Link的类型和样式。
10 1
Twaver-HTML5基础学习(14)连线(Link)连线类型(直线、延伸直线、正交直线)
|
4天前
|
移动开发 数据安全/隐私保护 UED
HTML5 新的 Input 类型详解
HTML5引入了多种新输入类型,显著提升了表单的用户体验和可用性。这些类型包括普通文本、搜索、电子邮件、网址、电话号码、密码、数字、范围选择、日期、时间、颜色选择等,每个类型都有特定用途和优化功能。例如,`email` 类型可自动验证邮件格式,`number` 类型提供增减按钮,而 `date` 类型则内置日期选择器。这些新类型不仅简化了用户操作,还增强了开发者对表单验证和数据交互的控制能力。
|
1天前
|
存储 移动开发 数据库
HTML5 Web IndexedDB 数据库常用数据存储类型
IndexedDB 支持多种数据存储类型,满足复杂数据结构的存储需求。它包括基本数据类型(如 Number、String、Boolean、Date)、对象(简单和嵌套对象)、数组、Blob(用于二进制数据如图像和视频)、ArrayBuffer 和 Typed Arrays(处理二进制数据)、结构化克隆(支持 Map 和 Set 等复杂对象),以及 JSON 数据。尽管不直接支持非序列化数据(如函数和 DOM 节点),但可以通过转换实现存储。开发者应根据具体需求选择合适的数据类型,以优化性能和使用体验。
|
23天前
|
JavaScript 前端开发 UED
让 HTML 向 Vue.js 华丽转身:如何把 `wangEditor` 仿腾讯文档项目整合进 Vue.js
让 HTML 向 Vue.js 华丽转身:如何把 `wangEditor` 仿腾讯文档项目整合进 Vue.js
|
2月前
|
移动开发 HTML5
HTML5文档基本格式
【8月更文挑战第28天】HTML5文档基本格式。
30 4
|
2月前
|
移动开发 HTML5
HTML5文档头部相关标记
【8月更文挑战第28天】HTML5文档头部相关标记。
24 1
|
2月前
|
自然语言处理 前端开发 开发者
|
2月前
揭秘HTML文档的结构和层次
揭秘HTML文档的结构和层次
下一篇
无影云桌面