哎,你好呀!看到你点开这个标题,我猜你可能是想转行做前端,或者是设计、运营同学想自己搭个简单的网页,又或者纯粹是对“网页是怎么长出来的”这件事感到好奇。
别担心,HTML5真的没有你想象中那么可怕。甚至可以说,它比大多数人理解的都要直观。你不需要有编程基础,只需要你会用电脑,会打字,就能学会。
今天这堂课,我们不讲枯燥的定义,我把你当成一个对世界充满好奇的小朋友,咱们一边拆房子,一边盖房子。我会用最通俗的大白话,配合实实在在的代码,带你从“我是个小白”走到“我能自己做一个像样的网页”。
准备好了吗?咱们开工。
第一章:网页到底是什么?先打破你的“神秘感”
很多人一听“前端开发”,脑子里就是满屏绿色的代码,觉得那是黑客在敲键盘。其实不是的。
网页,本质上就是一封写给浏览器的“装修说明书”。
想象一下,你住在一个毛坯房里(这就是空白文档),你想把它装修成法式复古风还是现代简约风?你不能直接喊一声“变”,你得给工人(浏览器)一张详细的图纸。
这张图纸,就是HTML。
而那张图纸上写的不是文字,是一堆特殊的标记(Tags)。浏览器读到了 <h1> 这个标记,它就明白:“哦,这是一个大标题,我要把它写得大大的、粗粗的。” 读到了 <img>,它就明白:“哦,这里要放一张图片。”
1.1 浏览器是怎么工作的?
为了让你真的懂,我给你画个简单的流程图:
- 你:在记事本里写了一堆代码,存成
index.html。 - 浏览器:双击打开这个文件。
- 解码:浏览器看着你的代码,开始“翻译”。
- 渲染:浏览器把你写的
<h1>你好</h1>变成了屏幕上那个大大的“你好”。
你看,HTML 只是骨架。如果你只写 HTML,那个网页会惨不忍睹——就像一个人有骨骼肌肉,但没有皮肤,也没有穿衣服。
所以,我们通常还要搭配两个小伙伴:
- HTML:负责结构(头、手、脚在哪里)。
- CSS:负责样式(穿红衣服还是蓝衣服,头发梳什么发型)。
- JavaScript:负责行为(手能动起来,脚能跑起来,点击按钮会弹出提示框)。
本章重点:今天我们专注讲 HTML5,也就是怎么搭这个骨架。至于穿衣服和让手脚动起来,我们后面会顺带提一下,但今天的主角是结构。
第二章:工欲善其事,先利其器
别去花大几百买什么专业软件!对于初学者,我强烈推荐一个工具,甚至可以说是“神器”:
VS Code (Visual Studio Code)
这是一款微软免费开发的代码编辑器。它好在哪里?
- 它会给你的代码自动上色(语法高亮),让你一眼看出哪里是标签,哪里是属性。
- 它有智能提示,你输入一半,它帮你猜后面要写什么。
- 它免费、轻量、跨平台(Windows/Mac都行)。
2.1 安装与创建第一个文件
- 去 VS Code 官网下载并安装。
- 打开 VS Code,新建一个文件夹,名字随便起,比如叫
my-first-website。 - 在 VS Code 里选择“打开文件夹”,选中刚才那个。
- 在左侧文件树里,右键 -> 新建文件,命名为
index.html。
注意:一定要叫 index.html,因为这是网站的“主页”,浏览器默认会优先找这个文件。
2.2 你的第一段代码:Hello World
现在,双击打开这个 index.html,输入下面这行代码。别复制粘贴,亲手敲一遍,手要有记忆感:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>我的第一个网页</title>
</head>
<body>
<h1>你好,世界!</h1>
<p>这是我写的第一个HTML网页,激动不激动?</p>
</body>
</html>
敲完之后,保存(Ctrl+S),然后去文件夹里双击打开这个文件,浏览器就会跳出来。你会看到中间写着大大的“你好,世界!”和下面一行小字。
恭喜你!你已经是一个正式的“前端开发者”了。虽然它看起来很丑,但它是活的,它是你亲手创造的数字世界。
第三章:HTML 的骨架结构——解剖一只“纸牌屋”
刚才那段代码,看起来乱糟糟的,但它是所有网页的“标准模板”。咱们把它拆开,一个个看明白。
3.1 声明文档类型:<!DOCTYPE html>
这一行必须写在第一行。它是在告诉浏览器:“嘿,醒醒!这是一个 HTML5 文档,请用 HTML5 的标准来解析我!” 如果不写这一行,浏览器可能会进入“怪异模式”,你的网页在很多浏览器上都会显示乱掉。
3.2 根元素:<html>
所有的内容都被包裹在这个标签里。它就像整个房子的地基。
lang="zh-CN":这是一个属性,告诉浏览器这个网页是简体中文的。这很重要,否则浏览器可能不知道如何正确显示中文,甚至影响搜索引擎(SEO)收录。
3.3 头部信息:<head>
注意,这里面的内容,用户在网页上看不到!
<head> 是存放“元数据”的地方,是给浏览器和搜索引擎看的。
<meta charset="UTF-8">:这是编码声明。UTF-8 是国际标准字符集,必须加!不加它,你的中文可能会变成一堆乱码(比如 “浣犲ソ” 这种鬼东西)。<title>我的第一个网页</title>:这是网页标题。你会在浏览器的最顶部的标签页上看到它。
3.4 身体内容:<body>
这才是网页真正的内容! 你在浏览器里看到的标题、图片、按钮、文字,全都在 <body> 和 </body> 之间。
第四章:文本的排版——把字写好看
HTML 最核心的作用,就是告诉浏览器:“这段是标题”,“那段是段落”,“这部分很重要,加个粗”。
4.1 标题标签:从 H1 到 H6
HTML 提供了 6 级标题,从 <h1> 到 <h6>,字体依次变小,重要性依次降低。
<h1>这是 biggest 的标题,一个页面通常只有一个</h1>
<h2>这是二级标题</h2>
<h3>这是三级标题</h3>
<p>而 <strong>这是普通段落,但是加粗了。</strong> 这不是强调,这是加粗。</p>
专家建议:从 SEO(搜索引擎优化)的角度看,<h1> 就像是一本书的书名,非常重要,一个页面最好只出现一次。
4.2 段落与换行
<p>:段落标签。浏览器会自动在段落之间加上间距。<br>:换行标签。这是一个自闭合标签,没有结束标签。
<p>第一行文字。</p>
<p>第二行文字。</p>
<!-- 浏览器会显示两个段落,中间有空隙 -->
<p>第一行文字。<br>第二行文字。</p>
<!-- 浏览器会显示在一处,只是强制换行了,没有段落间距 -->
4.3 文本格式化标签
有时候我们需要强调某些内容,或者展示代码。
| 标签 | 作用 | 示例 |
|---|---|---|
<strong> 或 <b> |
加粗 | <strong>重要内容</strong> |
<em> 或 <i> |
斜体/强调 | <em>语气强调</em> |
<mark> |
高亮标记 | <mark>黄色高亮</mark> |
<small> |
小号字体 | <small>版权声明在这里</small> |
<del> |
<del>原价100元</del> |
|
<code> |
代码格式 | <code>alert('hello')</code> |
一个小技巧:尽量用语义化的标签。比如表示“重要”,用 <strong> 而不是 <b>;表示“斜体强调”,用 <em> 而不是 <i>。因为 <strong> 告诉搜索引擎“这是重点”,而 <b> 只是视觉上的粗体。
第五章:列表——让信息井然有序
网页上的列表到处都是,比如菜单、商品清单、步骤说明。HTML 主要有两种列表。
5.1 无序列表 <ul>
用于没有顺序之分的列表,比如导航菜单。
<ul>
<li>苹果</li>
<li>香蕉</li>
<li>橙子</li>
</ul>
浏览器会自动在前面加上小圆点。
5.2 有序列表 <ol>
用于有顺序的列表,比如“第一步、第二步”。
<ol>
<li>打开网页</li>
<li>点击登录</li>
<li>输入密码</li>
</ol>
浏览器会自动加上 1. 2. 3. 这样的编号。
5.3 定义列表 <dl>
这个比较少用,但有时候会用到,比如 FAQ 页面,左边是问题,右边是答案。
<dl>
<dt>什么是HTML?</dt>
<dd>HTML是网页的骨架。</dd>
<dt>什么是CSS?</dt>
<dd>CSS是网页的皮肤。</dd>
</dl>
第六章:图片与超链接——网页的“连接”与“血肉”
纯文字的网页是孤独的。网页之所以强大,是因为它可以链接到其他地方,以及展示图像。
6.1 超链接 <a>
链接是网页的灵魂。没有链接,互联网就是一座座孤岛。
语法:<a href="链接地址">链接文字</a>
<!-- 链接到百度 -->
<a href="https://www.baidu.com">去百度逛逛</a>
<!-- 在新标签页打开链接(非常重要!用户体验最佳实践) -->
<a href="https://www.baidu.com" target="_blank">在新标签页打开百度</a>
href:Hypertext Reference 的缩写,就是“要去哪里”。target="_blank":这是一个属性,意思是“在新窗口/新标签页打开”。这能防止用户离开你的网站,是非常好的习惯。
6.2 图片 <img>
图片标签也是一个自闭合标签,它没有结束标签。
语法:<img src="图片地址" alt="图片描述">
<img src="https://picsum.photos/200/300" alt="一只可爱的小猫咪">
src:Source,图片从哪里加载。可以是本地路径(如images/cat.jpg),也可以是网络链接。alt:替代文本。这非常重要!- 如果图片加载失败,会显示这段文字。
- 如果有用户视力障碍,使用屏幕阅读器浏览网页时,会读出这段文字。
- 搜索引擎爬虫看不懂图片,但能读懂 alt 文字,所以对 SEO 极有帮助。
切记:永远不要省略 alt 属性!哪怕只是一个空格,也比没有好。
第七章:布局的基石——块级元素 vs 内联元素
这是初学者最容易晕的地方。为什么有的标签独占一行,有的挤在一起?
- 块级元素 (Block-level):像是一个个大箱子,独占一行,宽度默认撑满父容器。
- 常见标签:
<div>,<h1>-<h6>,<p>,<ul>,<ol>,<li>,<header>,<footer>,<section>。
- 常见标签:
- 内联元素 (Inline):像是积木,可以并排挤在一起,宽度由内容决定。
- 常见标签:
<span>,<a>,<img>,<strong>,<em>。
- 常见标签:
<div>我是一个大块头,我独占一行。</div>
<div>我也是大块头,我也独占一行。</div>
<span>我是小积木。</span>
<span>我也是小积木。</span>
<span>我们可以排成一排。</span>
理解这个区别,你以后在布局时就知道:想把两个东西并排,就把它们都放进 <div> 或者用 CSS 的 Flex 布局;如果你想在一个段落里把某个词标红,就用 <span>。
第八章:语义化标签——HTML5 的革命
在 HTML5 之前,大家写网页乱得一塌糊涂,到处都是 <div>,比如 <div class="header">,<div class="footer">。这样写,浏览器和搜索引擎很难理解这些区域到底是什么。
HTML5 引入了一系列语义化标签,让代码自己会说话。
<header>
<h1>网站标题</h1>
<nav>
<a href="#">首页</a>
<a href="#">关于我们</a>
<a href="#">联系我们</a>
</nav>
</header>
<main>
<article>
<h2>这是一篇文章的标题</h2>
<p>文章的具体内容...</p>
</article>
<aside>
<h3>侧边栏</h3>
<p>推荐文章...</p>
</aside>
</main>
<footer>
<p>版权所有 © 2026</p>
</footer>
<header>:页眉,放 logo 和导航。<nav>:导航栏,专门放链接列表。<main>:主要内容区域,一个页面通常只有一个。<article>:独立的文章内容,可以单独分发(比如RSS订阅)。<section>:主题章节,用于将内容分组。<aside>:侧边栏,内容与主内容稍微相关但不是核心。<footer>:页脚,放版权、备案号、相关链接。
为什么要用语义化?
- 代码可读性高:你自己几个月后回头看,一眼就能明白哪里是头部,哪里是底部。
- SEO 友好:搜索引擎爬虫能更准确地抓取你的重点内容,提升排名。
- 无障碍访问:屏幕阅读器能更好地帮助视障用户导航。
第九章:表单——让用户跟你“说话”
网页不只是用来“看”的,更是用来“交互”的。注册、登录、搜索、反馈,这些都需要表单。
9.1 表单的基本结构
<form action="/submit-data" method="POST">
<!-- 这里放输入控件 -->
</form>
action:表单提交到哪里去?(通常是后端服务器的地址)。method:怎么提交?GET是查询(参数会在 URL 里显示,不安全),POST是提交(参数在请求体里,相对安全)。
9.2 常用的输入控件
<form>
<!-- 文本输入框 -->
<label for="username">用户名:</label>
<input type="text" id="username" name="username" placeholder="请输入用户名">
<!-- 密码输入框 -->
<label for="password">密码:</label>
<input type="password" id="password" name="password" placeholder="请输入密码">
<!-- 单选按钮 -->
<p>性别:</p>
<input type="radio" id="male" name="gender" value="male">
<label for="male">男</label>
<input type="radio" id="female" name="gender" value="female">
<label for="female">女</label>
<!-- 多选框 -->
<p>爱好:</p>
<input type="checkbox" id="coding" name="hobby" value="coding">
<label for="coding">编程</label>
<input type="checkbox" id="reading" name="hobby" value="reading">
<label for="reading">阅读</label>
<!-- 下拉菜单 -->
<label for="city">城市:</label>
<select id="city" name="city">
<option value="beijing">北京</option>
<option value="shanghai">上海</option>
<option value="guangzhou">广州</option>
</select>
<!-- 文本域(多行输入) -->
<label for="message">留言:</label>
<textarea id="message" name="message" rows="4" cols="30"></textarea>
<!-- 提交按钮 -->
<button type="submit">提交</button>
</form>
关键点解析:
<label>和for属性:把标签和输入框绑定。点击“用户名”三个字,光标会自动跳到输入框里。这个小细节能极大提升用户体验。name属性:这个最重要!提交表单时,服务器是根据name来获取数据的,不是id。placeholder:输入框里的灰色提示文字,输入后消失。
第十章:综合实战——做一个个人名片网页
光说不练假把式。现在,我们把前面学到的所有知识,组装成一个完整的个人名片网页。
请新建一个文件 index.html,然后完整抄写并理解以下代码:
”`html <!DOCTYPE html>
