← 返回首页

</> HTML 入门教程

HTML(HyperText Markup Language,超文本标记语言)是构建网页的基石。本教程从零开始,系统讲解 HTML 的核心知识与实战技巧,助你打下扎实的前端基础。

一、HTML 简介与文档结构

HTML 使用"标签"(tag)来描述网页的结构和内容。浏览器读取 HTML 文件后,将其渲染为可视化的网页。

一个标准的 HTML5 文档结构如下:

<!DOCTYPE html>          <!-- 声明文档类型为 HTML5 -->
<html lang="zh-CN">       <!-- 根元素,lang 属性指定语言 -->
<head>
  <meta charset="UTF-8">  <!-- 字符编码 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>网页标题</title>  <!-- 浏览器标签页标题 -->
  <link rel="stylesheet" href="style.css">  <!-- 引入外部 CSS -->
</head>
<body>
  <!-- 页面上可见的所有内容都写在 body 里 -->
  <h1>欢迎来到我的网站</h1>
  <p>这是我的第一段文字。</p>
</body>
</html>
💡 关键概念:
标签:由尖括号包围的关键词,如 <p>。大多数标签成对出现:<p>内容</p>
自闭合标签:部分标签不需要结束标签,如 <img><br><hr>
属性:为标签提供额外信息,写在开始标签中,格式为 属性名="属性值"

二、文本与排版标签

HTML 提供了丰富的标签来控制文本的呈现方式。

2.1 标题标签 <h1> ~ <h6>

<h1>(最大)到 <h6>(最小),用于定义文档层级结构。每个页面建议只有一个 <h1>

<h1>一级标题(最重要)</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>

2.2 段落与换行

<p>这是一个段落。浏览器会自动在段落前后添加间距。</p>
<p>这是另一个段落。<br>这里插入了换行。</p>

2.3 文本格式化标签

标签效果语义说明
<strong>加粗表示重要内容(语义化)
<b>加粗纯视觉加粗(无语义)
<em>斜体表示强调内容(语义化)
<i>斜体纯视觉斜体(无语义)
<u>下划线表示拼写错误或专有名词
<s> / <del>删除线表示不再准确或已删除的内容
<mark>高亮表示需要突出显示的文字
<small>小号字附属细则、版权声明等
<sub> / <sup>H2O / x2下标 / 上标
⚠️ 注意:优先使用语义化标签(strongem)而非纯样式标签(bi),这对 SEO 和无障碍访问更友好。

2.4 水平线与特殊符号

<hr>                    <!-- 水平分割线 -->
&copy;  版权符号 ©
&nbsp;  不换行空格
&lt;    小于号 <
&gt;    大于号 >
&amp;   与符号 &
&quot;  双引号 "

三、超链接 <a>

超链接是互联网的基石,让页面之间可以互相跳转。

<!-- 跳转到外部页面(新标签页打开) -->
<a href="https://www.example.com" target="_blank">访问 Example</a>

<!-- 跳转到本站其他页面 -->
<a href="/about.html">关于我们</a>

<!-- 页面内锚点跳转 -->
<a href="#section2">跳转到第二节</a>
<h2 id="section2">第二节</h2>

<!-- 下载文件 -->
<a href="file.pdf" download>下载 PDF 文件</a>

<!-- 发送邮件 -->
<a href="mailto:hello@example.com">发送邮件</a>

<!-- 拨打电话 -->
<a href="tel:+8613800000000">拨打电话</a>
💡 target="_blank" 会让链接在新标签页打开。为了安全,建议同时添加 rel="noopener noreferrer" 防止钓鱼攻击。

四、图片 <img>

<!-- 基本用法 -->
<img src="photo.jpg" alt="一张风景照片" width="400" height="300">

<!-- 响应式图片:根据屏幕宽度加载不同尺寸 -->
<img 
  src="small.jpg"
  srcset="small.jpg 400w, medium.jpg 800w, large.jpg 1200w"
  sizes="(max-width: 600px) 400px, (max-width: 1000px) 800px, 1200px"
  alt="响应式图片示例">

<!-- 点击图片跳转 -->
<a href="https://example.com">
  <img src="banner.jpg" alt="广告横幅">
</a>
⚠️ 务必填写 alt 属性:当图片无法加载时显示替代文字,同时也是无障碍访问(屏幕阅读器)和 SEO 的关键要素。

五、列表

HTML 支持三种列表:无序列表、有序列表和定义列表。

<!-- 无序列表 -->
<ul>
  <li>苹果</li>
  <li>香蕉</li>
  <li>橙子</li>
</ul>

<!-- 有序列表 -->
<ol>
  <li>第一步:打开电脑</li>
  <li>第二步:启动浏览器</li>
  <li>第三步:输入网址</li>
</ol>

<!-- 定义列表(术语及其解释) -->
<dl>
  <dt>HTML</dt>
  <dd>超文本标记语言,用于构建网页结构</dd>
  <dt>CSS</dt>
  <dd>层叠样式表,用于美化网页外观</dd>
</dl>

<!-- 嵌套列表 -->
<ul>
  <li>前端技术
    <ul>
      <li>HTML</li>
      <li>CSS</li>
      <li>JavaScript</li>
    </ul>
  </li>
</ul>

六、表格 <table>

表格用于展示结构化数据,由行(tr)、单元格(td/th)组成。

<table>
  <caption>2025 年度销售报告</caption>  <!-- 表格标题 -->
  <thead>
    <tr>
      <th>产品</th>
      <th>销量</th>
      <th>单价</th>
      <th>总金额</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>商品 A</td>
      <td>120</td>
      <td>¥99</td>
      <td>¥11,880</td>
    </tr>
    <tr>
      <td>商品 B</td>
      <td>85</td>
      <td>¥199</td>
      <td>¥16,915</td>
    </tr>
  </tbody>
  <tfoot>
    <tr>
      <td colspan="3">合计</td>
      <td>¥28,795</td>
    </tr>
  </tfoot>
</table>
属性说明
colspan="n"单元格横跨 n 列
rowspan="n"单元格竖跨 n 行

七、表单 <form>(完整版)

表单是用户与网页交互的核心通道,用于收集和提交用户数据。

7.1 表单基础结构

<form action="/submit" method="POST">
  <!-- action: 提交到的服务器地址 -->
  <!-- method: GET(数据在URL中)/ POST(数据在请求体中) -->
  <!-- 表单控件放在这里 -->
</form>

7.2 <input> 输入类型大全

type 值用途示例
text单行文本输入<input type="text">
password密码输入(内容隐藏)<input type="password">
email邮箱地址(自动校验)<input type="email">
number数字输入(带增减按钮)<input type="number" min="0" max="100">
tel电话号码(手机端弹出数字键盘)<input type="tel">
url网址输入<input type="url">
date日期选择器<input type="date">
time时间选择器<input type="time">
color颜色拾取器<input type="color">
file文件上传<input type="file" accept="image/*" multiple>
checkbox多选框<input type="checkbox">
radio单选框(同 name 互斥)<input type="radio" name="gender">
range滑动条<input type="range" min="0" max="100">
search搜索框<input type="search">
hidden隐藏字段(用户不可见)<input type="hidden" name="id">

7.3 完整表单示例

<form action="/register" method="POST">
  <fieldset>
    <legend>用户注册</legend>

    <label for="username">用户名:</label>
    <input type="text" id="username" name="username" 
           placeholder="请输入用户名" required>

    <label for="email">邮箱:</label>
    <input type="email" id="email" name="email" 
           placeholder="example@mail.com" required>

    <label for="password">密码:</label>
    <input type="password" id="password" name="password" 
           minlength="6" required>

    <label>性别:</label>
    <input type="radio" name="gender" value="male" id="male">
    <label for="male">男</label>
    <input type="radio" name="gender" value="female" id="female">
    <label for="female">女</label>

    <label for="city">城市:</label>
    <select id="city" name="city">
      <option value="">请选择城市</option>
      <optgroup label="华北">
        <option value="beijing">北京</option>
        <option value="tianjin">天津</option>
      </optgroup>
      <optgroup label="华东">
        <option value="shanghai">上海</option>
        <option value="hangzhou">杭州</option>
      </optgroup>
    </select>

    <label for="bio">个人简介:</label>
    <textarea id="bio" name="bio" rows="4" 
              placeholder="请简单介绍自己..."></textarea>

    <label>
      <input type="checkbox" name="agree" required>
      我已阅读并同意《用户协议》
    </label>

    <button type="submit">注册</button>
    <button type="reset">重置</button>
  </fieldset>
</form>

7.4 常用属性速查

属性说明
required必填项,否则无法提交
placeholder输入框占位提示文字
disabled禁用控件,不可交互且不提交
readonly只读,可选中但不允许修改
min / max数字/日期的最小最大值
minlength / maxlength文本最小/最大长度
pattern正则表达式校验
autocomplete是否启用浏览器自动填充
autofocus页面加载后自动聚焦

八、HTML5 语义化标签

语义化标签让代码结构更清晰,也帮助搜索引擎和屏幕阅读器理解页面内容。

<body>
  <header>
    <nav>导航菜单</nav>
  </header>

  <main>
    <article>
      <h2>文章标题</h2>
      <section>
        <h3>第一节</h3>
        <p>内容...</p>
      </section>
    </article>

    <aside>
      <h3>侧边栏</h3>
      <p>相关链接或广告</p>
    </aside>
  </main>

  <footer>
    <p>&copy; 2025 我的网站</p>
  </footer>
</body>
标签含义
<header>页面头部 / 区块头部
<nav>导航链接区域
<main>页面主体内容(整个页面唯一)
<article>独立的、可复用的内容块
<section>文档中的节(通常带标题)
<aside>侧边栏 / 附属内容
<footer>页面底部 / 区块底部
<figure> + <figcaption>插图及其标题
<time>日期/时间
<details> + <summary>可折叠内容块
<!-- 可折叠面板示例 -->
<details>
  <summary>点击展开查看更多</summary>
  <p>这里是隐藏的内容,点击上方箭头可收起。</p>
</details>

九、多媒体:音频与视频

<!-- 音频播放 -->
<audio controls>
  <source src="music.mp3" type="audio/mpeg">
  <source src="music.ogg" type="audio/ogg">
  您的浏览器不支持音频播放。
</audio>

<!-- 视频播放 -->
<video controls width="640" poster="cover.jpg">
  <source src="video.mp4" type="video/mp4">
  <source src="video.webm" type="video/webm">
  <track src="subtitles.vtt" kind="subtitles" srclang="zh" label="中文">
  您的浏览器不支持视频播放。
</video>
属性说明
controls显示播放控件(播放/暂停/音量)
autoplay自动播放(通常需要 muted 配合)
muted静音播放
loop循环播放
poster视频加载前的封面图
preload预加载策略(none / metadata / auto)

十、内嵌框架 <iframe>

iframe 用于在当前页面中嵌入另一个网页。

<!-- 嵌入 YouTube 视频 -->
<iframe width="560" height="315" 
  src="https://www.youtube.com/embed/VIDEO_ID"
  title="视频标题"
  frameborder="0"
  allow="accelerometer; autoplay; clipboard-write; encrypted-media"
  allowfullscreen>
</iframe>

<!-- 嵌入地图 -->
<iframe src="https://www.google.com/maps/embed?..."
  width="600" height="450" style="border:0;" 
  loading="lazy">
</iframe>
⚠️ 安全提醒:iframe 可能带来 XSS 攻击风险。始终使用 sandbox 属性限制 iframe 的能力,并只嵌入可信来源的内容。

十一、<head> 中的元信息

<head> 虽然不可见,但对 SEO、社交分享和浏览器行为至关重要。

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="description" content="网页描述,搜索引擎会显示此内容">
  <meta name="keywords" content="HTML, CSS, 前端教程">
  <meta name="author" content="作者名">
  <meta name="robots" content="index, follow">

  <!-- Open Graph: 控制社交平台分享时的预览卡片 -->
  <meta property="og:title" content="网页标题">
  <meta property="og:description" content="分享描述">
  <meta property="og:image" content="https://example.com/thumb.jpg">
  <meta property="og:url" content="https://example.com">

  <!-- 网站图标 -->
  <link rel="icon" type="image/png" href="favicon.png">
</head>

十二、HTML 最佳实践总结

  1. 始终声明 DOCTYPE:确保浏览器以标准模式渲染
  2. 使用语义化标签:让 HTML 描述内容而非外观
  3. 为图片添加 alt 属性:提升可访问性和 SEO
  4. 表单控件搭配 label:扩大点击区域,方便屏幕阅读器
  5. 合理缩进和注释:代码是给人读的,保持整洁
  6. 移动优先:使用 viewport meta 标签,确保移动端体验
  7. HTML 负责结构,CSS 负责样式:不混用 deprecated 属性(如 bgcolor、align)
  8. 验证 HTML:使用 W3C 验证器 检查语法错误
🎉 恭喜你完成了 HTML 完整教程!掌握了以上内容,你已经具备了构建任何网页结构的能力。继续学习 CSS 教程,让你的网页变得美观动人吧!