跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
HTML / CSS大前端

HTML 标签详解:网页结构、文本、表单与列表基础

综述由AI生成HTML 是构建网页的基石。系统讲解了 HTML 核心标签体系,涵盖初始结构、文本标签(标题、段落、强调)、媒体交互标签(图片、超链接)、表格、列表及表单标签的使用方法。通过语义化标签和属性设置,开发者可搭建清晰的网页骨架,为后续 CSS 样式与 JavaScript 交互奠定基础。

雪落无声发布于 2026/4/5更新于 2026/5/2733 浏览
HTML 标签详解:网页结构、文本、表单与列表基础

请添加图片描述

前言

HTML(HyperText Markup Language,超文本标记语言)是构建网页的基石,是每一位前端开发者踏入 Web 世界的关键钥匙。它通过一系列语义化与功能性的标签,为网页搭建起清晰的'结构骨架',让文本、图片、表单等各类内容得以有序呈现,是网页与用户交互的'第一层语言'。

对于想要系统学习 HTML 的初学者,或是需要回顾基础的开发者而言,本文将围绕 HTML 的核心标签体系展开讲解。

我们会从最基础的初始 HTML 结构标签入手,逐步深入到文本标签(标题、段落、强调类等)、媒体与交互标签(图片、超链接)、表格标签、列表标签(无序、有序、自定义)、表单标签(容器、输入控件、辅助标签等)的使用方法与场景,最后也会涉及无语义标签的相关知识。通过对这些内容的学习,你将全面掌握 HTML 构建网页结构的核心能力,为后续学习 CSS(美化网页样式)、JavaScript(实现网页交互)奠定坚实的基础。

一、HTML 结构

1.1 初始 HTML 标签

  • HTML 代码都是由标签组成的。

标签就是类似于<body>内容</body>这种形式的字段,比如百度主页的代码结构:

请添加图片描述

可以看到就是由众多标签组成的。

关于标签可以分为两类:

  1. 双标签:有开始,有结束;比如<body>内容....</body>,其中的<body>就是开始标签,而</body>就是结束标签。
  2. 单标签:只有开始,比如图片标签<img>。
  • 在双标签之间放的是标签对应的内容,而在标签内部则可以设置标签的属性。

关于有哪些标签以及如何进行使用,在后面会详细进行介绍。

1.2 标签的层次

标签之间的结构关系,组成了一颗 DOM 树的结构,就是一颗多叉树。

请添加图片描述

  • 因此多叉树的节点中有哪些关系,标签就有那些关系。

其中有几个规定:

  1. html标签是根标签,所有标签都是它的子标签。
  2. <head>是网页属性配置标签,<body>是网页主体内容标签,它们是父子标签。

在进行前端编写时,我们通常会采用 VSCode 作为开发工具,此处推荐几个好用的插件:

  1. Auto Rename Tag:可以自动将双标签进行对称修改处理,修改一侧另一侧会自动修改。
  2. Live Server:可以让我们修改后的 HTML 界面直接在网页中查看变化,不再需要手动刷新网页了。
  3. View In Browser:让我们一键打开浏览器查看 HTML 网页效果。

通过输入!然后按回车,可以快速自动生成 HTML 代码框架:

请添加图片描述

下面我将对其中的字段进行一个简单的介绍:

  1. <!DOCTYPE html>:一个文档类型说明,告诉浏览器当前 HTML 文档使用的是 HTML5 规范。
  2. <html lang="en">:告诉浏览器,当前文档中主要内容是英文。
  3. <meta charset="UTF-8">:文档的字符编码采用的是 UTF-8。
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0">:是关于移动设备适配使用的。

二、HTML 文本标签

以下是一张关于常见文本标签的列表:

名称说明
标题<h1>标题名</h1> 通过修改数字来指定标签级别
段落<p>内容</p>
加粗<strong>内容</strong>或<b></b>
倾斜<em>内容</em>或<i></i>
删除线<del>内容</del>或<s></s>
下划线<ins>内容</ins>或<u></u>

2.1 标题标签

  • 语法:<h1>标题名称</h1>:一级标签。
  • <h2>, <h3>... <h6>,最多可以到六级标题。

效果演示:

<body>
<h1>这是一个一级标题</h1>
<h2>这是一个二级标题</h2>
<h3>这是一个三级标题</h3>
<h4>这是一个四级标题</h4>
<h5>这是一个五级标题</h5>
<h6>这是一个六级标题</h6>
</body>

请添加图片描述

2.2 段落标签

  • 语法:<p>段落内容</p>,段落标签属于块标签,不会和其他标签内容共占一行。
<body>
<p>这是第一段</p>
<p>这是第二段</p>
<p>这是第三段</p>
</body>

请添加图片描述

如果一个段落中内容过长,可能会导致一个段落占据多行的情况,比如下面:

请添加图片描述

此时如果我们想要在一个段落的中间对内容进行换行操作,此时就可以使用换行标签:

<br />

这是一个单标签,专门用来进行换行操作的:

<body>
<p>这是第一段,这里有一个换行标签<br />,这是第一段...</p>
<p>这是第二段</p>
<p>这是第三段</p>
</body>

请添加图片描述

2.3 强调标签

2.3.1 加粗
  • 语法:<strong>内容</strong>或<b>内容</b>,该标签属于行内标签。

效果演示:

<body>
<strong>第一个加粗字段</strong>
<strong>第二个加粗字段</strong>
</body>

请添加图片描述

  • <strong>和<b>标签都能让文本在视觉上呈现'加粗'效果,它们的核心区别在于'语义'。
  • <strong>是对语义化的'强调重要性',而<b>仅仅是进行加粗操作;比如屏幕阅读器会通过语调变化强调<strong>包裹的内容,让用户感知到其重要性。
2.3.2 倾斜
  • 语法:<em>内容</em>或<i>内容</i>,该标签与上面标签一样,也是一个行内标签。

效果演示:

<body>
<em>第一个倾斜字段</em>
<em>第二个倾斜字段</em>
</body>

请添加图片描述

2.3.3 删除线
  • 语法:<del>内容</del>或<s>内容</s>是一个行内标签。

效果演示:

<body>
<del>第一个删除线</del>
<del>第二个删除线</del>
</body>

请添加图片描述

2.3.4 下划线
  • 语法:<ins>内容</ins>或<u>内容</u>是一个行内标签。
<body>
<ins>第一个下划线</ins>
<ins>第二个下划线</ins>
</body>

请添加图片描述

三、媒体与交互标签

此处重点介绍两个:

名称说明
图片<img>
超链接<a></a>

3.1 图片标签

  • 语法:<img src="图片路径">。

关于图片标签有很多可以进行设置的属性,下面进行重点介绍:

属性说明
src图片路径
alt图片路径不对时显示的文案提示
title提示文本,鼠标放在图片上进行提示
height/width图片的高度/宽度
border图片边框大小

对于 alt 效果演示:

<body>
<img src="./" alt="没有找到图片">
</body>

请添加图片描述

  • height, width, border的单位都是 px,并且对于 height, width来说,一般只设置一个,另一个会等比例进行缩放。

对于 title, height, width, border 效果演示:

<body>
<img src="./头像.jpg" height="100px" title="这是一个头像" border="1px">
</body>

请添加图片描述

3.2 超链接标签

  • 语法:<a>跳转提示</a>。

与图片一样,超链接标签也有一些属性可以进行设置:

属性说明
href超链接跳转的地址
target跳转的方式,_self本页面跳转,_blank新标签页打开

效果演示:

<body>
<a href="#" target="_blank">点击,跳转到我的主页</a>
</body>
  • 关于<a>标签中间的内容,不仅仅可以是文字,也可以是图片。

四、表格标签

表格标签就是<table></table>但是其内部又衍生出来了,很多标签:

名称说明
表格属于容器,<table>内容</table>
表格中的一行属于容器,<tr>内容</tr>
一个单元格<td>内容</td>
指定表格头部区域属于容器,<thead>内容</thead>
表头单元格默认会居中加粗,<th>内容</th>

4.1 表格的使用

表格标签使用起来,相对复杂一点,一下是一个使用方法演示:

<body>
<table>
<thead>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</thead>
<tr>
<td>张三</td>
<td>17</td>
<td>女</td>
</tr>
<tr>
<td>李四</td>
<td>34</td>
<td>男</td>
</tr>
<tr>
<td>王五</td>
<td>31</td>
<td>男</td>
</tr>
</table>
</body>

效果演示:

请添加图片描述

  1. 其中的<table></table>表示一个容器,中间存放的内容都属于有一个表格内容。
  2. <thead></thead>表示表格的头部区域,th是表示头部的每一个单元格。
  3. <tr></tr>表示表格的每一行,而<td></td>则是表格一行中的每一单元格。

4.2 表格的属性

对于表格来说,也有一些常用的属性可以进行设置:

属性说明
cellspacing每个单元格之间的距离
cellpadding内容距离边框的距离,默认是 1
border当然表格也可以设置边框

效果演示:

<body>
<table border="1px" cellspacing="0" cellpadding="10">
<thead>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</thead>
<tr>
<td>张三</td>
<td>17</td>
<td>女</td>
</tr>
<tr>
<td>李四</td>
<td>34</td>
<td>男</td>
</tr>
<tr>
<td>王五</td>
<td>31</td>
<td>男</td>
</tr>
</table>
</body>

请添加图片描述

五、列表标签

名称说明
无序列表容器<ul>...</ul>
有序列表容器<ol>...</ol>
列表项<li>...</li>
自定义列表容器<dl>...</dl>
自定义列表解释项<dt>...</dt>
自定义列表说明项<dd>...</dd>
  • 无序列表:<ul>(容器)+ <li>(列表项)
  • 有序列表:<ol>(容器)+ <li>(列表项)
  • 定义列表:<dl>(容器)+ <dt>(术语)+ <dd>(解释)

5.1 无序列表

  • 无序列表:<ul>(容器)+ <li>(列表项) 效果演示:
<body>
<ul>
<li>内容 1</li>
<li>内容 2</li>
<li>内容 3</li>
</ul>
</body>

请添加图片描述

对于无序列表,有一个经常设置的属性:

  • type:表示列表项目前面符号的内容,有三个:disc实心圆,square方块,circle空心圆。

5.2 有序列表

  • 有序列表:<ol>(容器)+ <li>(列表项) 使用方法与上面类似,此处就不进行展示了。
  1. 其中可以对列表起始位置的数值进行设置:start=
  2. 也可以设置顺序列表排列的符号类型:type=,可以选择 1使用数字,a使用小写字母,A使用大写字母,i使用小写阿拉伯数字,I使用大写阿拉伯数字。

5.3 自定义列表

  • 定义列表:<dl>(容器)+ <dt>(术语)+ <dd>(解释)
<body>
<dl>
<dt>这是一个自定义列表</dt>
<dd>内容 1</dd>
<dd>内容 2</dd>
<dd>内容 3</dd>
</dl>
</body>

请添加图片描述

六、表单标签

可以使用表单标签实现与服务器进行交互。

名称说明
表单域,容器<form>...</form>
输入控件<input>...
下拉菜单<select>...</select>
下拉选项<option>...</option>
多行文本<textarea></textarea>

6.1 表单容器标签

<form>唯一的表单容器标签,通过属性控制表单行为:

  • action:指定表单数据提交的服务器地址(URL)。
  • method:指定提交方式(get 或 post)。

6.2 输入控件标签

6.2.1 输入框
  • 语法:input

其中关于输入,可以输入很多类型,通过type=属性进行控制:

  1. 文本输入:text输入单行文本,password输入密码: 效果演示:
<body>
<form action="">
账号<input type="text"><br/>
密码<input type="password">
</form>
</body>

请添加图片描述

  1. 数值输入:type="number"(仅允许数字)、type="range"(滑块选择数值);
<body>
<form action="">
年龄<input type="number"><br/>
1<input type="range">100
</form>
</body>

请添加图片描述

  1. 媒体输入:type="file"(文件上传)、type="image"(图片按钮,可提交表单),该属性比较简单,此处就不再进行演示了。
  2. 选择输入:type="radio"(单选按钮,互斥选择),type="checkbox"(复选框,可多选);
<body>
<form action="">
性别:<input type="radio">男<input type="radio">女
</form>
</body>

请添加图片描述

此时就可以进行选择了,当时如果直接这样进行设置,两个可以同时进行选择,但是我们希望的是只能选择一个。

  • 此时就需要对数据框进行唯一标识,使用name=来让两个选项具有一个标识。
  • 还可以使用checked来让一个作为默认选项。
<body>
<form action="">
性别:<input type="radio" name="gender" checked="checked">男<input type="radio" name="gender">女
</form>
</body>

当然也可以使用checkbox表示多选。

6.2.2 多行文本输入
  • 语法:使用<textarea></textarea>

其中可以设置文本框的宽度和高度,使用cols/rows。

效果演示:

<body>
<form action="">
<textarea name="" id="" cols="30" rows="10">请输入内容....</textarea>
</form>
</body>

请添加图片描述

6.2.3 下拉选择器
  • 语法:使用<select></select>来进行实现,其中<option></option>表示对应的选项。

效果演示:

<body>
<form action="">
<select name="" id="">
<option value="">选项 1</option>
<option value="">选项 2</option>
<option value="">选项 3</option>
<option value="">选项 4</option>
</select>
</form>
</body>

请添加图片描述

6.3 表单辅助标签

标签关联:<label>

  • 为表单控件绑定文本说明,点击文本可聚焦到对应的控件(尤其适合复选框、单选按钮),通过 for 属性与控件的 id 关联。

例如,上面我们写的性别选择:

<body>
<form action="">
性别:<input type="radio" name="gender" checked="checked">男<input type="radio" name="gender">女
</form>
</body>

现在如果我们希望,在点击中文汉字的时候也能进行也能实现选择,就可以使用lable来进行实现。

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

6.4 按钮标签

**<button>**最灵活的按钮,可包含文本、图标等内容,通过 type 属性定义行为:

  • type="submit":默认值,点击提交表单。
  • type="reset":点击重置表单(清空输入)。
  • type="button":无默认行为,需配合脚本使用(如弹窗)。

关于按钮标签,要搭配 JS 进行使用,后续会专门写一篇博客讲 JS。

<body>
<form action="">
<button type="button">一个按钮</button>
<button type="submit">现在提交</button>
<button type="reset">重置</button>
</form>
</body>

七、无语义标签

无语义标签分为两种:<div></div>和<span></span>。

其中<div>是块标签,独占一行,而<span>是行内标签,不独占一行。

  • 无语义标签没有固定的用途,可以该标签做任何事情,一般负责网页布局。

下面补充几个 HTML 中的特殊字符:

  1. &nbsp;:空格,在 HTML 中多个空格相连,浏览器会将其合并为一个,所以可以使用&nbsp;来保证多个空格同时显示。
  2. &lt;:小于符号。
  3. &gt;:大于符号。
  4. &amp;:按位与符号。

目录

  1. 前言
  2. 一、HTML 结构
  3. 1.1 初始 HTML 标签
  4. 1.2 标签的层次
  5. 二、HTML 文本标签
  6. 2.1 标题标签
  7. 2.2 段落标签
  8. 2.3 强调标签
  9. 2.3.1 加粗
  10. 2.3.2 倾斜
  11. 2.3.3 删除线
  12. 2.3.4 下划线
  13. 三、媒体与交互标签
  14. 3.1 图片标签
  15. 3.2 超链接标签
  16. 四、表格标签
  17. 4.1 表格的使用
  18. 4.2 表格的属性
  19. 五、列表标签
  20. 5.1 无序列表
  21. 5.2 有序列表
  22. 5.3 自定义列表
  23. 六、表单标签
  24. 6.1 表单容器标签
  25. 6.2 输入控件标签
  26. 6.2.1 输入框
  27. 6.2.2 多行文本输入
  28. 6.2.3 下拉选择器
  29. 6.3 表单辅助标签
  30. 6.4 按钮标签
  31. 七、无语义标签
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 移动前端与 Web 前端开发的核心差异解析
  • VSCode GitHub Copilot 插件无模型问题解决方案
  • 安装 WSL Ubuntu 到 D 盘的方法
  • 大模型分布式训练与高效调参技术实战
  • OpenClaw 启动后 Web 控制面板无法登录提示 Not Found
  • 6 款主流 AI 写作工具实测:网文创作效率对比
  • C++ STL 中 set 与 map 的实现原理及算法实战应用
  • Dify 工作流发布为 MCP Server 实践指南
  • OpenClaw 本地部署与 cpolar 公网访问配置指南
  • VSCode 插件 Git Graph 可视化 Git 提交记录教程
  • 递归与搜索算法实战:汉诺塔、链表操作及快速幂
  • C++ 模板编程基础:泛型编程入门与实践
  • Ubuntu 22.04 安装 NVIDIA Container Toolkit 配置 Docker GPU 加速
  • 基于大模型的自然语言数据库查询实现指南
  • C++ 二叉搜索树详解:增删查改与 Key/Value 场景实现
  • Flutter 导航栈中移除指定页面的实现方案
  • Llama-Factory 实现会议纪要生成:语音转写与摘要一体化
  • Lostlife2.0 整合 LLama-Factory 引擎重塑 NPC 对话逻辑
  • 机器学习:决策树算法原理详解
  • Android 原生分享功能实现详解

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online