一、文档结构与元数据(可渲染部分)
尽管 <html>、<head>、<body> 不直接渲染内容,但 <body> 是可渲染内容的容器,<title> 渲染在浏览器标签栏。
二、内容分组标签
| 标签 | 说明 | 使用场景 |
|---|
<div> | 无语义块级容器 | 布局容器、样式钩子 |
<span> | 无语义行内容器 | 文本片段样式、图标 |
<p> | 段落 | 文本段落 |
<hr> | 主题分隔线 | 内容分段、视觉分隔 |
<br> | 换行 | 诗歌、地址等强制换行 |
<pre> | 预格式化文本 | 代码块、ASCII 艺术(保留空格和换行) |
<blockquote> | 块级引用 | 长引用内容 |
<figure> | 独立内容单元(常配 <figcaption>) | 插图、代码片段、表格 |
<figcaption> | <figure> 的标题/说明 | 图片描述、代码说明 |
1 2 3 4
| <figure> <img src="chart.png" alt="销量图"> <figcaption>2024 年度销量趋势</figcaption> </figure>
|
三、文本语义标签
| 标签 | 说明 | 使用场景 |
|---|
<h1>~`` | 标题层级 | 文档大纲 |
<strong> | 强调(粗体) | 重要内容 |
<em> | 强调(斜体) | 语气强调 |
<b> | 粗体(无语义) | 关键词、产品名 |
<i> | 斜体(无语义) | 术语、外语、船名 |
<u> | 下划线 | 拼写错误标注 |
<s> | 删除线 | 已过时、已删除内容 |
<small> | 小字注释 | 版权声明、法律文本 |
<sub> / <sup> | 下标 / 上标 | 化学式 H₂O、数学指数 x² |
<code> | 行内代码 | 变量名、API 名称 |
<kbd> | 键盘输入 | 快捷键提示 Ctrl+S |
<samp> | 程序输出 | 命令行输出示例 |
<var> | 变量 | 数学变量 x |
<abbr> | 缩写 | HTML,配 title 属性展示全称 |
<address> | 联系信息 | 作者、公司地址 |
<time> | 时间/日期 | 发布时间、事件日期(配 datetime) |
<mark> | 高亮标记 | 搜索结果关键词、重要文本 |
<cite> | 作品标题 | 书名、文章名 |
<q> | 行内引用 | 短引用(浏览器加引号) |
<dfn> | 定义术语 | 首次出现的术语 |
<del> / <ins> | 删除 / 插入内容 | 版本变更对比 |
1 2 3 4
| <p>按下 <kbd>Ctrl</kbd> + <kbd>S</kbd> 保存文件。</p> <p>会议时间:<time datetime="2024-03-15T14:00">2024年3月15日下午2点</time></p> <p><abbr title="Cascading Style Sheets">CSS</abbr> 用于控制页面样式。</p> <p>搜索结果中的 <mark>关键</mark> 词高亮显示。</p>
|
四、链接与交互标签
| 标签 | 说明 | 使用场景 |
|---|
<a> | 超链接 | 页面跳转、锚点、下载 |
<button> | 按钮 | 表单提交、交互触发 |
<details> | 可展开详情 | FAQ、折叠面板 |
<summary> | <details> 的可见标题 | 折叠面板的标题行 |
<dialog> | 模态对话框 | 弹窗、确认框 |
<menu> | 菜单列表(工具条) | 工具栏、上下文菜单 |
1 2 3 4 5 6 7 8 9 10
| <details> <summary>什么是语义化 HTML</summary> <p>语义化 HTML 指使用具有含义的标签...</p> </details>
<dialog id="confirm"> <p>确定删除吗?</p> <button onclick="this.closest('dialog').close()">取消</button> </dialog> <button onclick="document.getElementById('confirm').showModal()">删除</button>
|
五、嵌入内容标签
| 标签 | 说明 | 使用场景 |
|---|
<img> | 图片 | 展示图片 |
<picture> | 响应式图片 | 根据屏幕条件提供不同图片源 |
<source> | 为 <picture> / <video> / <audio> 提供资源 | 多格式降级 |
<video> | 视频 | 播放视频 |
<audio> | 音频 | 播放音频 |
<iframe> | 内嵌页面 | 嵌入第三方内容(地图、支付) |
<canvas> | 2D 绘图 | 图表、游戏、图像处理 |
<svg> | 矢量图形 | 图标、插画 |
<embed> | 嵌入插件 | 已过时,用 <iframe> 替代 |
<object> | 通用嵌入 | 很少使用 |
1 2 3 4 5 6 7 8 9 10 11 12 13
| <picture> <source srcset="image.avif" type="image/avif"> <source srcset="image.webp" type="image/webp"> <img src="image.jpg" alt="描述"> </picture>
<video controls width="640"> <source src="video.mp4" type="video/mp4"> <source src="video.webm" type="video/webm"> 您的浏览器不支持视频播放 </video>
|
六、表格标签
| 标签 | 说明 | 使用场景 |
|---|
<table> | 表格容器 | 数据表格 |
<caption> | 表格标题 | 表格说明文字 |
<thead> | 表头分组 | 列标题行 |
<tbody> | 表体分组 | 数据行 |
<tfoot> | 表尾分组 | 汇总行 |
<tr> | 行 | 表格行 |
<th> | 表头单元格(加粗居中) | 列名、行名 |
<td> | 数据单元格 | 数据 |
<colgroup> | 列分组 | 为整列设置样式 |
<col> | 列定义 | 配合 <colgroup> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <table> <caption>2024 年销售数据</caption> <colgroup> <col style="background: #f0f0f0"> <col span="2" style="background: #fff"> </colgroup> <thead> <tr><th>季度</th><th>销售额</th><th>利润</th></tr> </thead> <tbody> <tr><td>Q1</td><td>100万</td><td>20万</td></tr> <tr><td>Q2</td><td>120万</td><td>25万</td></tr> </tbody> <tfoot> <tr><td>合计</td><td>220万</td><td>45万</td></tr> </tfoot> </table>
|
七、表单标签
| 标签 | 说明 | 使用场景 |
|---|
<form> | 表单容器 | 数据提交 |
<input> | 输入控件 | 文本、密码、数字、文件等(由 type 决定) |
<textarea> | 多行文本输入 | 评论、描述 |
<select> | 下拉选择 | 选项列表 |
<optgroup> | 选项分组 | 带分组的下拉菜单 |
<option> | 选项 | 下拉选项 |
<datalist> | 输入建议列表 | 自动补全输入框 |
<label> | 标签 | 关联输入控件(点击 label 聚焦 input) |
<fieldset> | 表单字段分组 | 分组相关控件 |
<legend> | 分组标题 | <fieldset> 的标题 |
<output> | 计算结果展示 | 实时计算显示 |
<progress> | 进度条 | 文件上传进度 |
<meter> | 度量值 | 磁盘使用量、评分 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <label for="browser">选择浏览器:</label> <input list="browsers" id="browser"> <datalist id="browsers"> <option value="Chrome"> <option value="Firefox"> <option value="Edge"> </datalist>
<progress id="upload" value="60" max="100"></progress> <output for="upload">60%</output>
<meter value="0.7" min="0" max="1" low="0.3" high="0.8" optimum="0.5">70%</meter>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| type="text" → 单行文本 type="password" → 密码 type="number" → 数字 type="email" → 邮箱 type="url" → URL type="tel" → 电话 type="search" → 搜索框 type="checkbox" → 复选框 type="radio" → 单选框 type="file" → 文件上传 type="color" → 颜色选择器 type="date" → 日期 type="time" → 时间 type="datetime-local" → 本地日期时间 type="range" → 滑块 type="hidden" → 隐藏 type="submit" → 提交按钮 type="reset" → 重置按钮
|
八、列表标签
| 标签 | 说明 | 使用场景 |
|---|
<ul> | 无序列表 | 导航、商品列表 |
<ol> | 有序列表 | 排行榜、步骤说明 |
<li> | 列表项 | 每一项 |
<dl> | 定义列表 | 键值对列表 |
<dt> | 定义术语 | 键 |
<dd> | 定义描述 | 值 |
1 2 3 4 5 6
| <dl> <dt>HTML</dt> <dd>超文本标记语言,负责网页结构</dd> <dt>CSS</dt> <dd>层叠样式表,负责网页样式</dd> </dl>
|
九、脚本与交互标签
| 标签 | 说明 | 使用场景 |
|---|
<script> | JS 脚本 | 引入或内联 JS |
<noscript> | 无脚本降级 | 浏览器禁用 JS 时显示 |
<template> | 客户端模板 | 声明可克隆的 DOM 片段 |
<slot> | Web Component 插槽 | 自定义元素内容分发 |
1 2 3 4 5 6 7 8 9 10 11 12
| <template id="card-template"> <div class="card"> <h3 class="title"></h3> <p class="desc"></p> </div> </template>
<script> const clone = document.getElementById('card-template').content.cloneNode(true); clone.querySelector('.title').textContent = '标题'; document.body.appendChild(clone); </script>
|
十、语义化布局标签(HTML5)
| 标签 | 说明 | 等价于 |
|---|
<header> | 页眉/头部 | 语义化 div |
<nav> | 导航区域 | 语义化 div |
<main> | 页面主体(每页仅一个) | 语义化 div |
<section> | 通用章节 | 语义化 div |
<article> | 独立内容单元(文章、帖子) | 语义化 div |
<aside> | 侧边栏/补充内容 | 语义化 div |
<footer> | 页脚 | 语义化 div |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <header> <nav> <ul> <li><a href="/">首页</a></li> <li><a href="/blog">博客</a></li> </ul> </nav> </header> <main> <article> <h1>文章标题</h1> <p>文章内容...</p> </article> <aside> <h2>相关文章</h2> </aside> </main> <footer>© 2024</footer>
|
语义化标签不改变样式,但提供以下好处:
- SEO:搜索引擎更好地理解页面结构
- 无障碍:屏幕阅读器可以导航到各个区域
- 可维护性:代码结构一目了然
十一、特殊字符与实体
1 2 3 4 5 6 7 8 9 10 11 12
| 不换行空格 < < > > & & " " ' ' © © ® ® ™ ™ — — – – → →
|
十二、不推荐或已废弃的标签
| 标签 | 替代方案 | 原因 |
|---|
<center> | CSS text-align: center | 表现应由 CSS 控制 |
<font> | CSS font-family / font-size | 表现应由 CSS 控制 |
<big> | CSS font-size | 表现应由 CSS 控制 |
<strike> | <s> 或 CSS text-decoration | 语义更明确的标签 |
<u> | CSS text-decoration | 语义易混淆(恢复使用但谨慎) |
<marquee> | CSS 动画 | 非标准、可访问性差 |
<frame> / <frameset> | <iframe> | 标准废弃 |
<bgsound> | <audio> | IE 专有 |
<blink> | CSS 动画 | 非标准 |