什么是 HTML
你访问过的每一个网站,最初都是一份用 HTML 写成的纯文本文档。你在页面上看到的标题、段落、按钮、图片和链接,全都是用这一种语言描述出来的。
在给页面添加样式或让它动起来之前,你得先说清楚页面上有什么。这个描述工作,就是 HTML 在做的事。
页面就是结构化的文本
HTML 的全称是 HyperText Markup Language(超文本标记语言)。这里的关键词是**标记(markup)**。
你拿一段普通文本,标出哪部分是标题,哪部分是段落,哪部分是链接。你不是在给计算机下达要执行的指令。你是在给内容贴标签,让浏览器知道每一块内容到底是什么。
想象一下你手动排版一份文档:把标题圈出来,给章节标题加下划线,给一张照片画个框。HTML 做的就是这类圈画和标注,只不过是用浏览器能读懂的方式。
<h1>Welcome</h1>
<p>This is a paragraph of text on my first web page.</p>两行文字,两种结构:一个标题,一个段落。浏览器读取这些标签,把第一行显示得又大又粗,第二行显示为普通正文。
如果你觉得这个答案简单得不像是真正的答案——它确实就是这么简单。我第一周一直在找那个"复杂的部分",结果根本没有。
元素、标签和属性
HTML 大部分是由**元素(element)**组成的。一个元素通常有一个开始标签、一些内容,和一个结束标签:
<p>Hello there.</p><p> 是开始标签,</p> 是结束标签(注意那个斜杠),中间的 "Hello there." 是内容。三者合在一起构成一个段落元素。标签是标签,内容才是访问者真正会读到的东西。
你还可以用**属性(attribute)**给标签附加额外信息,写法是在开始标签里加上 name="value" 这样的键值对。链接需要知道要跳转到哪里,你就用 href 来告诉它:
<a href="https://scrimba.com">Visit Scrimba</a>有些元素根本没有内容,所以也没有结束标签。这些就是**空元素(void elements)**,你会经常碰到它们:<img>、<br>、<input>、<hr>。它们需要的一切信息都放在属性里,所以没什么内容要包裹,也没什么需要闭合的。
<img src="golden-retriever.jpg" alt="A golden retriever sitting in tall grass"><p>...</p> 这样。属性写在开始标签里,用来补充细节,比如一个链接指向哪里。 请不要试图把每一个标签都背下来。标签有一百多个,没有人能把它们全都记在脑子里。你会慢慢掌握用得上的那一小部分,剩下的就一直查,跟我们其他人一样。
HTML、CSS 和 JavaScript 如何分工
一个完整的网页通常由三种语言搭建而成,每一种只负责一件事:
- HTML 负责结构:标题、文字、图片和按钮。
- CSS 负责样式:颜色、字体、间距和布局。
- JavaScript 负责行为:点击、输入或滚动时会发生什么。
这里有个我一直用来打比方的画面。HTML 是一座房子的墙和房间,CSS 是油漆和家具,JavaScript 则是让东西通上电、能开关的那部分。
你先学墙,是因为在结构还不存在之前,根本没有什么可以刷漆或接电的。
尽早养成把这三者分开的习惯,很值得。当你的内容放在 HTML 里、样式放在 CSS 里、行为放在 JavaScript 里,你就可以单独修改其中任何一个,而不会影响另外两个。
墙一旦立起来,油漆和电线就有地方可去了。而且光靠这一层,你就能搭出一个真实、有用的页面——等你觉得另外两门语言离你很远的时候,知道这一点会挺安心的。
第一次完整看一个页面
下面是一个完整的网页,很小但是真实存在的那种。接下来几章你会好好认识它的每一部分,所以现在先别纠结细节。眼下只需要注意到,它全都是由你已经见过的标签和属性搭出来的:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>My first page</title>
</head>
<body>
<h1>Welcome</h1>
<p>This is a paragraph of text on my first web page.</p>
</body>
</html>从上往下读。第一行告诉浏览器这是一份现代 HTML 页面。<html> 把所有内容都包裹在里面。<head> 存放页面标题这类幕后信息,<body> 存放你实际看到的内容。
前面出现过的标题和段落都放在 body 里面,因为它们是给访问者看的内容。这种划分——页面的信息和页面的内容分开——是每份文档都要做的第一个结构性决定。
下一章讲的是你的第一个 HTML 页面,会把这个骨架逐行拆开来讲。
<html> 包着一个 <head> 和一个 <body>。head 里是幕后信息,body 里是大家看到的内容。 下一章会把这个骨架好好拆开讲清楚,所以现在只需要大概看一眼就够了。第一次看会觉得内容不少,看到第五次差不多就没什么感觉了。

