一个网页文件本质上就是一个文本文档。理论上我们可以使用任何文本编辑器来编写这种文件。例如Windows中的记事本。现在我们打开记事本,输入下边的一句话:
```html
我正在写<u>超文本</u>文档。
```
然后我们保存这个文件。记事本默认将其保存为普通的文本文档,扩展名是.txt。不过这次我们换个扩展名,把它另存为index.htm。正常情况下,Windows会把这个文件重新关联到一个Web浏览器上。用浏览器打开这个文件就会看到这串文字,只是在“超文本”这三个字上加了下划线。在这个例子中,我们使用了\<u\>...\</u\>标签,这对儿标签有开始也有结束,浏览器在渲染时会给该标签包围的文本加下划线。这是一种特殊的文本文档,它用一部分文本作为标签去定义另一部分文本的意义和显示方式,我们把这种文档叫做**超文本文档**,用来编写超文本文档的语言叫做**超文本标记语言**(HTML)。但不论它超级到什么程度,其本质仍然是文本文档。你或许会想,即便是文本文档,也有很多编码方式。那么我们应该选择哪种编码呢?其实这取决于我们面向哪种语言的人群以及他们所使用的浏览器。不过目前来讲,全网普遍倾向于使用UTF-8编码,这种编码支持几乎所有人类语言。现在你需要做的,就是为自己选择一款现代浏览器和酷炫的文本编辑器。浏览器这方面,我建议你在Google Chrome和Firefox中任选一款你喜欢的,它们都紧跟JavaScript的成长步伐。文本编辑器这方面,特别推荐你使用vscode,这是微软非常成功的免费项目,用户体验堪称丝滑顺爽。特别有意义的是,vscode本身就是用JavaScript编写的。
上面的例子只是在演示超文本的概念。然而,一个完整的超文本文档应该具备下面的结构。请在刚才的index.htm中进行修改,换成下面的样子:
```html
<!doctype html>
<html>
<head>
<title>welcome</title>
</head>
<body>
<p>This is a paragraph.</p >
</body>
</html>
```
在浏览器里观察新的内容,不需要重新打开文件,只需按<kbd>F5</kbd>键刷新页面即可。超文本标记语言也有自身的演化历程,历史上出现过很多版本的HTML。在上边的例子中,\<!doctype html\>这一行是告诉浏览器该文档是一个符合HTML 5规范的超文本文档。\<html\>...\</html\>是一对儿标签,也是超文本文档的最外层节点,其他所有标签统统要放在这对儿标签的内部。在这对儿标签内部,又被分为两大部分,第一部分是\<head\>...\</head\>,叫做**头部**。头部里边放置供浏览器使用的信息。在这里有一个\<title\>...\</title\>标签,其中包围的文字会出现在浏览器的标题栏中。第二部分是\<body\>...\</body\>,叫做**体部**。体部中主要放置要在浏览器窗口中呈现给用户的内容。在这个例子中,体部里有一个\<p\>...\</p\>标签,表示此处是一个段落。
现在,你可以编写更多的信息。例如,告诉浏览器这个文档的编码类型是UTF-8,可以写成下面的样子:
```html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>欢迎来访</title>
</head>
<body>
<p>这是一个UTF-8编码的网页。</p >
</body>
</html>
```
当然,别忘了用utf-8编码方式来保存这个文件。如果文档实际的编码和告知浏览器的不一致,会导致页面显示错乱(乱码)。