每日一题:DOCTYPE 的作用是什么

437

考查知识点

  1. 理解 <!DOCTYPE> 的作用
  2. 可引申至 HTML 的发展,HTML4,HTML5
  3. 可引申至 DTD 和 SGML 等相关知识点

导读

<!DOCTYPE> 是现在大家写 HTML 时敲下的第一个内容,但是其具体作用可能会被大家所忽略。这里考察的就是基础知识。

题解

DOCTYPE 是标准通用标记语言(Standard Generalized Markup Language, SGML)的文档类型声明,它的作用是告诉 SGML 的解析器应该使用哪个文档类型定义(Document Type Definition, DTD)来解析文档。

其格式如下:

<!DOCTYPE html PUBLIC "quoted string">

引号中的字符串被称为公共标识符(public identifier),它通常通过相关标准所定义的“公认”的名称来指代所需的 DTD。

举个例子:

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

<!DOCTYPE> 声明位于 HTML 文档的第一行, <html> 标签之前,并且 <!DOCTYPE> 不是 HTML 标签,而是一个告诉浏览器(SGML 的解析器)使用哪种 DTD 来解析这个文档的声明。如果指定了 DTD,浏览器就会以标准模式(standard mode)对文档进行解析,否则会以兼容模式(quirks mode)来解析文档。<!DOCTYPE> 声明对大小写不敏感。

此外,在 HTML 5 出现之后,不再需要指定 DTD。

后记

本题已回答完毕,但其实这个回答中,还涉及了很多其他相关知识,例如 DTD,SGML,HTML 4,HTML 5,标准模式,兼容模式。在本题,虽然我们讲到了这些概念,但并没有对其进行详细说明。因为本题并没有问,如果你又回答了这些,可能就有些答非所问。可以在面试官说“你刚刚提到了 DTD,那能解释下 DTD 是什么吗”的时候再回答。

今日题目

  • DTD 是什么?

后续题目

  • SGML 是什么?
  • HTML 4 和 HTML 5 的区别与联系
  • 为什么在 HTML 5 出现之后,不再需要指定 DTD
  • 解释下浏览器的标准模式和兼容模式

编程每日一题:每天一道精选面试或编程题,180秒内语音答题模式凝练回答。次日推送参考题解供大家复盘,做到事事有回音,题题有答案。

项目地址:github.com/leviding/On…