HTML 入门手册
从零开始学习 HTML —— 网页的骨架与灵魂。适合所有零基础初学者。
什么是 HTML?
HTML 的全称是 HyperText Markup Language(超文本标记语言)。 它不是编程语言,而是一种标记语言——通过"标签"告诉浏览器如何展示内容。
- 超文本:可以包含文字、图片、视频、链接等
- 标记:用
<tag>这样的标签给内容做标记 - 语言:有自己的一套规则和语法
你可以把 HTML 想象成盖房子的结构图纸——它决定哪里是墙、哪里是门窗、哪里是房间。而 CSS 是装修,JavaScript 是水电。
HTML 文档结构 必知
每个 HTML 页面都有固定的骨架结构。这是一个最小可用的 HTML 文件:
<!-- index.html -->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>页面标题</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>这是我的第一个页面。</p>
</body>
</html>
| 标签 | 作用 |
|---|---|
<!DOCTYPE html> | 声明文档类型为 HTML5(必须写在第一行) |
<html> | 整个 HTML 文档的根元素 |
<head> | 页面的元数据(标题、编码、样式等),用户不可见 |
<meta charset="UTF-8"> | 设置字符编码,支持中文 |
<title> | 浏览器标签栏上显示的标题 |
<body> | 页面可见内容的容器 |
一定要写
<!DOCTYPE html>! 不写的话浏览器会以"怪异模式"渲染,导致页面错乱。
基本语法
标签的两种形式
| 类型 | 写法 | 示例 |
|---|---|---|
| 双标签 | <开>内容</关> | <p>文字</p> |
| 单标签(自闭合) | <标签> 或 <标签 /> | <br>、<img> |
属性
标签可以通过属性来配置更多行为,写在开始标签里:
<a href="https://example.com" target="_blank">点我打开新窗口</a>
其中 href 和 target 就是属性,格式是 属性名="属性值"。
标签的嵌套
标签可以嵌套,但必须正确闭合——先开的后关:
<!-- ✅ 正确 -->
<div>
<p>文字</p>
</div>
<!-- ❌ 错误:交叉嵌套 -->
<div>
<p>文字</div>
</p>
注释
注释不会显示在页面上,仅供开发者自己查看:
<!-- 这是注释,用户看不到我 -->
<!--
多行注释也是可以的
可以写很多行
-->
注释可以用来暂时"禁用"某段代码,或给同事(包括未来的自己)写说明。
标题标签 h1 ~ h6
HTML 提供了 6 级标题,<h1> 最大,<h6> 最小:
h1. 一级标题
h2. 二级标题
h3. 三级标题
h4. 四级标题
h5. 五级标题
h6. 六级标题
每个页面最好只有一个
<h1>,通常放页面标题或 logo。不要为了改变字号而滥用标题层级——那是 CSS 的事。
文本标签
| 标签 | 作用 | 效果 |
|---|---|---|
<p> | 段落 | 前后自动换行加间距 |
<br> | 换行(单标签) | 强制换行 |
<hr> | 水平分割线(单标签) | 画一条横线 |
<strong> | 重要文字(加粗) | 加粗 |
<em> | 强调(斜体) | 斜体 |
<u> | 下划线 | 下划线 |
<s> | 删除线 | |
<small> | 小号文字 | 小号文字 |
<mark> | 高亮标记 | 高亮 |
<pre> | 预格式文本 | 保留空格和换行 |
<code> | 代码片段 | 等宽字体 |
<blockquote> | 长引用(块级) | 缩进显示 |
示例
<p>这是普通段落文字。</p>
<p>这是重要文字,这是强调文字。</p>
<blockquote>
这是引用的内容,通常会缩进显示。
</blockquote>
列表
无序列表 <ul>
项目符号为圆点:
<ul>
<li>苹果</li>
<li>香蕉</li>
<li>橘子</li>
</ul>
- 苹果
- 香蕉
- 橘子
有序列表 <ol>
带数字编号:
- 第一步:打开编辑器
- 第二步:编写 HTML
- 第三步:保存为 .html 文件
自定义列表 <dl>
用于术语-描述的场景:
<dl>
<dt>HTML</dt>
<dd>超文本标记语言,网页的骨架</dd>
<dt>CSS</dt>
<dd>层叠样式表,负责网页的样式</dd>
</dl>
超链接 <a>
超链接是互联网的基石,用 <a> 标签创建:
<!-- 链接到外部网站 -->
<a href="https://www.baidu.com">去百度</a>
<!-- 新窗口打开 -->
<a href="https://example.com" target="_blank">新窗口打开</a>
<!-- 页面内锚点跳转 -->
<a href="#intro">跳到"什么是HTML"章节</a>
<!-- 发邮件 -->
<a href="mailto:hello@example.com">给我发邮件</a>
<!-- 打电话(手机端) -->
<a href="tel:13800138000">打电话</a>
| 属性 | 说明 | 示例值 |
|---|---|---|
href | 链接目标 URL(必填) | "https://..." |
target | 在哪里打开 | "_self"(当前窗口)、"_blank"(新窗口) |
title | 鼠标悬停时显示的提示文字 | "点击跳转" |
图片 <img>
<img> 是单标签,用来显示图片:
<img
src="images/photo.jpg"
alt="一张风景照片"
width="400"
height="300"
>
| 属性 | 说明 | 是否必填 |
|---|---|---|
src | 图片路径(本地或网络 URL) | 是 |
alt | 图片加载失败时的替代文本 | 强烈建议 |
width / height | 宽高(像素或百分比) | 否 |
alt 属性非常重要——它不仅能在图片加载失败时提供文字说明,还能被屏幕阅读器朗读给视障用户,同时有利于搜索引擎优化(SEO)。
表单 <form>
表单用于收集用户输入,是前后端交互的核心:
<form action="/submit" method="post">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required>
<label for="pwd">密码:</label>
<input type="password" id="pwd" name="pwd">
<label for="gender">性别:</label>
<select id="gender" name="gender">
<option value="male">男</option>
<option value="female">女</option>
</select>
<button type="submit">注册</button>
</form>
常用输入类型
type 值 | 用途 |
|---|---|
text | 单行文本输入 |
password | 密码输入(内容以圆点遮盖) |
email | 邮箱(浏览器会校验格式) |
number | 数字(可调上下箭头) |
checkbox | 复选框(多选) |
radio | 单选框 |
file | 文件上传 |
date | 日期选择器 |
color | 颜色选择器 |
range | 滑块 |
submit | 提交按钮 |
reset | 重置按钮 |
实际演示
表格 <table>
表格由行(<tr>)和单元格(<td> / <th>)组成:
<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>城市</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>28</td>
<td>北京</td>
</tr>
<tr>
<td>李四</td>
<td>32</td>
<td>上海</td>
</tr>
</tbody>
</table>
| 姓名 | 年龄 | 城市 |
|---|---|---|
| 张三 | 28 | 北京 |
| 李四 | 32 | 上海 |
合并单元格用 colspan(跨列)和 rowspan(跨行):
<td colspan="2">合并两列</td>
多媒体
视频 <video>
<video src="movie.mp4" controls width="560">
您的浏览器不支持视频播放。
</video>
音频 <audio>
<audio src="music.mp3" controls>
您的浏览器不支持音频播放。
</audio>
嵌入页面 <iframe>
<iframe
src="https://www.bilibili.com"
width="560"
height="315"
allowfullscreen
></iframe>
controls 属性会显示播放/暂停、进度条等控件。不加的话用户无法操作播放,适合背景音乐等场景。
HTML5 语义化标签
语义化标签让代码"见名知意",对开发者、浏览器、搜索引擎都更友好:
<header> 页面头部 / 文章头部
<nav> 导航栏
<main> 页面主体内容(每页只有一个)
<article> 独立文章 / 内容块
<section> 文档中的章节
<aside> 侧边栏 / 补充内容
<footer> 页面底部(版权、联系方式等)
<figure> 配图区域
<figcaption> 配图的说明文字
不要为了"语义化"而滥用——比如所有
<div> 都改成 <section>。合理使用即可,重点是结构清晰。
实际页面结构示例
<body>
<header>
<h1>我的博客</h1>
<nav>
<a href="/">首页</a>
<a href="/about">关于</a>
</nav>
</header>
<main>
<article>
<h2>文章标题</h2>
<p>文章内容...</p>
</article>
<aside>
<h3>关于作者</h3>
</aside>
</main>
<footer>
<p>© 2026 我的博客</p>
</footer>
</body>
常用字符实体
有些字符在 HTML 中有特殊含义(如 <、>),需要写成"实体"形式才能正常显示:
| 显示结果 | 实体名称 | 实体编号 |
|---|---|---|
| < | < | < |
| > | > | > |
| & | & | & |
| " | " | " |
| © | © | © |
| ® | ® | ® |
| (空格) | |   |
最常用的是
< 和 >:在代码块中展示 HTML 标签时必须用它,否则浏览器会把标签当成真的标签来解析。
推荐学习资源
- MDN Web 文档 — 最权威的 HTML/CSS/JS 参考手册,developer.mozilla.org
- W3Schools — 适合初学者的交互式教程,w3schools.com
- 菜鸟教程 — 中文入门教程,runoob.com
- HTML Validator — W3C 官方 HTML 校验工具,validator.w3.org
给初学者的建议
- 多动手写——打开记事本/VSCode,跟着教程敲代码,不要复制粘贴
- 用开发者工具——在浏览器按 F12 查看任何网页的 HTML 结构
- 先学 HTML 再学 CSS——骨架搭好再装修
- 不要死记硬背——记住常用标签即可,生僻的随时查 MDN
- 保持好奇——看到喜欢的网页,就用"查看源代码"研究它是怎么做的