2.6 HTML 文档结构

什么是一个完整的HTML文档

之前我们讨论的都是HTML文档中的片段,除了这些局部语法外,一个合法的HTML文档还有整体性的结构要求。

文档类型(Doctype)

首先需要定义文档的类型:Doctype

我们可以把Doctype看成HTML语言的版本,就好比Word97和Word2001一样。不同版本之间的语法约定不尽相同,但通常会保持向下兼容,好比Word2001能打开Word97的文档一样。

以前XHTML 1.0 和 HTML 4.01 曾经是彼此竞争的HTML标准,其中XHTML的语法更为严格,后者更为灵活。而当今HTML5 是统一的、最新的技术标准。

XHTML1.0的文档类型写法如下:

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

HTML5的文档类型写法如下:

<!DOCTYPE html>

可以看到HTML5的写法极致简单,甚至没有包含版本号5。

<html> html元素

除了文档类型定义行外,HTML文档中的其余所有部分都需要被包含在一个名为 <html> 的元素中:

<!DOCTYPE html>
<html>
  <!-- HTML代码都在这里 -->
</html>

很显然 <html> 是根元素,是所有其他元素的祖先。

<head> 元素用来定义网页中的公共部分,比如页面标题、元数据(网页描述、关键词等)以及需要提前加载的样式或脚本:

<head>
  <title>免费HTML5在线教程</title>
  <link rel="shortcut icon" href="http://techbrood.com/themes/techbrood/image/favicon.ico" type="image/x-icon" />
  <meta name="description" content="从入门到精通 大量实例讲解 在线调试和题目练习 全面覆盖H5,C3,ES6等高级课题"/>
  <link rel="stylesheet prefetch" href="//techbrood.com/themes/techbrood/css/common.css"/>
</head>

<head>中可以使用的元素包括:

  • <title>
  • <link>
  • <meta>
  • <style>
  • <script>

<head>中出现的<title>会显示为页面标题(浏览器标签栏上的文本),<link rel="shortcut icon" href="#" />会被显示为标签栏上的网站标识,而所有其他元素不会被显示,但这些元素各有用途,后续章节会一一提到。

<body> body元素

<head> 包含的是页面的元数据,<body> 元素则用来包含页面的主体内容。一般所有 <body> 内部的元素都将被浏览器所渲染。

一个完整有效的HTML文档

把上述元素组合起来,可以构建一个完整的HTML文档:

W3C 提供了一个检查文档有效性的在线工具: 标记验证服务

读者可能还记得前述的2.2 HTML语法一节所创建的第一个HTML文件,里面只包含了一个<p>元素,为什么也能正确的被浏览器所显示呢? 原因很简单,浏览器在解释代码时,默认帮你补上了本节所述的文档结构元素。你可以通过Chrome开发工具的查看元素来确认这一点。 和以往相比,现代浏览器在处理不规范的文档结构时变得智能和宽容得多。

本章我们学习了HTML语法语义、元素类型、层级关系以及文档结构,在接下来的第3章中,我们将详细讲解用来编写HTML文档具体内容的各个元素,如图片、文本、表格和链接等。