《HTML5+CSS3网页设计入门必读》——2.4 DOCTYPE:形式更简洁

简介:

本节书摘来自异步社区《HTML5+CSS3网页设计入门必读》一书中的第2章,第2.4节,作者: 【英】Jeremy Keith , 【美】Dan Cederholm 更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.4 DOCTYPE:形式更简洁

文档类型声明(Document Type Declaration)简称为doctype,一直用于指定文档所编写的标记类型。

HTML 4.01的 doctype如下所示(»为自动换行标记):

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

XHTML 1.0 的doctype如下所示:

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

这些doctype看起来并不易读,但它们以其独特的方式简单地说明了:“该文档用HTML 4.01编写”或“该文档用XHTML 1.0编写”。

如果doctype声称“该文档用HTML5编写”,那么按道理其中应该会出现数字5。但事实并非如此。HTML5的doctype如下所示:

<!DOCTYPE html>

该doctype是如此之短,甚至可以让人将其背诵下来。

这实在是太不可思议了!如果 doctype中不含有版本号,那么该如何指定其他版本的HTML呢?

第一次看到HTML5的doctype的时候,我认为这是高度傲慢的结果。心想:“难道他们真相信这就是标记规范的最终版了吗?”

然而事实上,HTML5的doctype是非常务实的。由于HTML5需要支持现有内容,所以其doctype可以应用于现有的HTML 4.01文档和XHTML 1.0文档。任何未来版本的HTML也需要支持HTML5中的现有内容,因此应用版本号来标记文档的观念是有缺陷的。

事实上,doctype并不那么重要。假设需要为一个文档提供HTML 4.01的doctype。如果该文档中包含来自另一个规范的元素,如HTML 3.2或HTML5,那么浏览器将仍然呈现该文档的这一部分。这是因为浏览器支持的是特性,而非doctype。

起初,文档类型声明(Document Type Declaration)是为验证器而非为浏览器而设计的。浏览器仅在“doctype转换”的情况下才会关注doctype——“doctype转换”(doctypy switching)是一个聪明的小黑客,它根据是否存在合适的doctype来转换显示模式,即怪异模式(quirks mode)或标准模式(standard mode)。

为了确保浏览器以标准模式显示,至少需要HTML5的doctype。事实上,这是包含doctype的唯一原因。不用HTML5的doctype编写的HTML文档仍然是有效的HTML5。

相关文章
|
9天前
|
前端开发 搜索推荐
【HTML专栏3】!DOCTYPE、lang、字符集的作用
【HTML专栏3】!DOCTYPE、lang、字符集的作用
12 0
|
9天前
|
前端开发 JavaScript 开发工具
【HTML/CSS】入门导学篇
【HTML/CSS】入门导学篇
19 0
|
1月前
|
移动开发 前端开发 HTML5
【基于HTML5的网页设计及应用】——工字型布局
【基于HTML5的网页设计及应用】——工字型布局
59 0
|
1月前
|
移动开发 HTML5 容器
【基于HTML5的网页设计及应用】——固定宽度布局
【基于HTML5的网页设计及应用】——固定宽度布局
28 0
|
1月前
|
移动开发 前端开发 数据安全/隐私保护
【基于HTML5的网页设计及应用】——用户注册
【基于HTML5的网页设计及应用】——用户注册
21 0
|
1月前
|
移动开发 前端开发 HTML5
【基于HTML5的网页设计及应用】——实现个人简历表格和伪类选择器应用
【基于HTML5的网页设计及应用】——实现个人简历表格和伪类选择器应用
46 0
|
4天前
|
移动开发 前端开发 JavaScript
CSS选择器 前端开发入门笔记(十)
CSS选择器 前端开发入门笔记(十)
16 1
|
4天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
14 1
|
1月前
|
移动开发 前端开发 JavaScript
HTML语言基础知识入门
HTML语言基础知识入门
|
1月前
|
移动开发 前端开发 HTML5
【基于HTML5的网页设计及应用】——float实现页面布局
【基于HTML5的网页设计及应用】——float实现页面布局
25 0