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,如需转载请自行联系原作者


相关文章
|
3月前
|
移动开发 HTML5
HTML5标签的类型
HTML5标签的类型。
79 5
|
4月前
|
移动开发 前端开发 JavaScript
Twaver-HTML5基础学习(15)形状连线(ShapeLink)四种类型(直线、正交、二次贝塞尔、三次贝塞尔)
本文介绍了Twaver HTML5中的形状连线(ShapeLink),包括如何使用它以及如何添加控制点。文章详细解释了ShapeLink支持的四种连线类型:直线(lineto)、正交(orthogonalto)、二次贝塞尔曲线(quadto)和三次贝塞尔曲线(cubicto),并通过示例代码展示了如何在React组件中创建和配置ShapeLink。
62 3
|
2月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
52 5
|
2月前
|
Web App开发 移动开发 iOS开发
HTML5 新的 Input 类型6
`&lt;input type=&quot;url&quot;&gt;` 用于需要输入 URL 的表单字段,浏览器会自动验证输入是否为有效网址
|
2月前
|
Web App开发 移动开发 iOS开发
HTML5 新的 Input 类型5
HTML5 引入了多种新的输入类型,以增强用户体验和数据验证。`&lt;input type=&quot;tel&quot;&gt;` 用于输入电话号码;`&lt;input type=&quot;time&quot;&gt;` 允许用户选择时间(不带时区);`&lt;input type=&quot;url&quot;&gt;` 用于输入网址,支持自动验证。这些输入类型在不同浏览器中的支持情况有所不同,但大多数现代浏览器均能良好支持。例如,在 iPhone 的 Safari 浏览器中,使用 `url` 类型时,键盘会特别显示 `.com` 按钮以方便输入。
|
2月前
|
移动开发 HTML5
HTML5 新的 Input 类型2
`&lt;input&gt;` 标签提供多种类型以满足不同需求:`datetime` 类型用于选择 UTC 时间的日期和时间;`datetime-local` 类型用于选择不带时区的日期和时间;`email` 类型则确保输入的是有效的电子邮件地址,适用于需要收集用户邮箱信息的场景。
|
2月前
|
移动开发 HTML5
HTML5 新的 Input 类型3
`&lt;input type=&quot;month&quot;&gt;` 允许用户选择一个月份,适用于需要指定月份和年的场景。示例:生日 (月和年)。 `&lt;input type=&quot;number&quot;&gt;` 用于需要数值输入的场合,可设置数值范围等限制。示例:数量 (1 到 5 之间)。支持 `disabled`, `max`, `min` 等属性以增强功能。
|
2月前
|
Web App开发 移动开发 iOS开发
HTML5 新的 Input 类型1
HTML5引入了多种新的输入类型,如color、date、email等,增强了表单的输入控制与验证功能。尽管并非所有浏览器都完全支持,但这些新类型仍可在主流浏览器中使用,不支持时会退化为普通文本输入。例如,`&lt;input type=&quot;color&quot;&gt;`允许用户通过颜色选择器选取颜色,而`&lt;input type=&quot;date&quot;&gt;`则提供了一个日期选择器来方便用户选择日期。
|
2月前
|
移动开发 HTML5
HTML5 新的 Input 类型4
`range` 类型的输入域用于需要在一定范围内选择数值的情况,通常以滑动条形式展示。
|
3月前
|
JavaScript 前端开发 UED
HTML 超链接的多种类型及应用
【10月更文挑战第17天】HTML 超链接类型丰富多样,它们共同构成了网页中不可或缺的导航和交互元素。通过合理地选择和运用这些超链接类型,我们可以为用户创造更加流畅和便捷的浏览体验,提升网站的可用性和吸引力。
124 1