【HTML】HTML所有标签的用法及示例(二)

简介: 本文系统梳理HTML全部标签功能与用法,涵盖文档结构、语义化分区、文本格式、内联语义、多媒体、表单、脚本等11大类,搭配基础代码示例,有效帮助开发者准确理解标签语义与适用场景。

前言

了解HTML所有标签的用法,并列出基础示例。
(主要对上一篇内容进行补充)


一、HTML 所有标签的作用


1. 文档结构标签

  • <address>: 用于定义文档或文章的作者/所有者的联系信息。
  • <dl>, <dt>, <dd>: 定义描述列表及其术语和描述。
  • <dialog>: 定义对话框或窗口(注意:HTML5中,但并非所有浏览器都支持其作为独立元素)。
  • <figure>, <figcaption>: 用于对图片、图表、照片、代码等进行分组并添加标题。

2. 元数据标签

暂无补充

3. 内容分区(语义化)标签

暂无补充

4. 文本内容(格式)标签

  • <b>: 粗体文本。
  • <u>: 定义对文本的非文本样式装饰的线(通常是下划线)。与 <ins><del> 不同,<u> 不表示文档内容的特定变化。
  • <bdi>: 隔离一段文本的方向性,使其不受周围文本方向的影响。
  • <bdo>: 覆盖默认的文本方向。

5. 内联文本语义标签

  • <abbr>: 定义缩写词。
  • <cite>: 定义引用作品的标题。
  • <code>:定义计算机代码文本。
  • <dfn>: 定义术语。
  • <kbd>: 定义键盘输入。
  • <q>: 定义短引用。
  • <samp>: 定义计算机程序的样本输出。
  • <var>: 定义变量。
  • <time>:定义日期/时间。

6. 多媒体标签

  • <canvas>: 定义图形(如通过JavaScript绘制的图表或游戏)。
  • <picture>: 允许定义图片的多个源,以便根据不同屏幕条件选择最适合的图片(尽管不是所有浏览器都支持)。

7. 嵌入内容标签

    暂无补充

8. 表格标签

  • <col>, <colgroup>: 定义表格中的列或列组。

9. 表单标签

  • <datalist>: 定义输入字段的预定义选项列表。
  • <meter>: 定义已知范围内的标量测量或分数值(虽然与表单相关,但更常用于显示数据)。
  • <optgroup>: 定义下拉列表中的选项组。
  • <output>: 定义不同类型的输出,比如脚本的输出。
  • <progress>: 定义任务的进度(同样,虽然常用于表单提交进度,但不限于此)。

10. 脚本标签

    暂无补充

11. 其他标签

  • <area>: 定义图像映射内部的区域(通常与<map>一起使用)。
  • <map>: 定义图像映射(一组可点击的区域)。
  • <menu>: HTML5 中已重新定义,主要用于上下文菜单或工具栏(非导航菜单)。
  • <ruby>, <rp>, <rt>: 主要用于东亚文字的注音或注释。
  • <slot>: 属于Web Components技术中的一部分,用于在Shadow DOM中创建插槽,以便外部HTML可以插入到组件的特定位置。
  • <template>: 定义客户端内容的隐藏部分,这些内容在加载页面时不会被显示或执行,但可以在后续被JavaScript使用。
  • <wbr>: 定义单词内可选的换行位置。它对于长单词或URL在较小屏幕上的显示很有用。

二、HTML 所有标签的具体使用示例


1.文档结构标签

  • <address> - 定义文档或文章的作者/拥有者的联系信息

      <address>
        Written by <a href="mailto:webmaster@example.com">Webmaster</a>.<br>
        Visit us at:<br>
        Example.com<br>
        Box 564, Disneyland<br>
        USA
      </address>
    
  • <dl> - 定义描述列表

  • <dt> - 定义描述列表中的术语/名称

  • <dd> - 定义描述列表中的描述

      <dl>
        <dt>Coffee</dt>
        <dd>Black hot drink</dd>
        <dt>Milk</dt>
        <dd>White cold drink</dd>
      </dl>
    

    (注意:<dl><dt><dd> 均在示例中展示)

  • <dialog> - 定义对话框或窗口

      <dialog open>
        <p>This is a dialog window.</p>
        <button id="close">Close</button>
      </dialog>
    
      <script>
        document.getElementById('close').onclick = function() {
          
          document.querySelector('dialog').close();
        };
      </script>
    
  • <figure> - 定义一段独立的流内容,如图表、照片、代码等

  • <figcaption> - 定义 <figure> 元素的标题

      <figure>
        <img src="image.jpg" alt="描述性文本">
        <figcaption>这里是图像的标题</figcaption>
      </figure>
    

(注意:<figure><figcaption> 均在示例中展示)


2.元数据标签

    暂无补充

3.内容分区(语义化)标签

    暂无补充

4.文本内容(格式)标签

  • <b> - 粗体文本

      <p>This text is <b>bold</b>.</p>
    
  • <u> - 定义对文本的非文本样式装饰的线(通常是下划线)。与 <ins><del> 不同,<u> 不表示文档内容的特定变化。

      <p>这段文本包含 <u>下划线</u> 文本。</p>
    
  • <bdi> - 隔离一段文本,使其不受周围文本方向的影响

      <p>This text contains a number: <bdi>123,456</bdi>.</p>
    
  • <bdo> - 覆盖默认的文本方向

      <p><bdo dir="rtl">This text will be written from right to left.</bdo></p>
    

5.内联文本语义标签

  • <abbr> - 定义缩写

      <p>The <abbr title="HyperText Markup Language">HTML</abbr> specification is maintained by the <abbr title="World Wide Web Consortium">W3C</abbr>.</p>
    
  • <cite> - 定义引用

      <p>The book <cite>Great Expectations</cite> was written by Charles Dickens.</p>
    
  • <code>:定义计算机代码文本

      <p>To use HTML, you need to know <code>HTML</code> tags.</p>
    
  • <dfn> - 定义术语

      <p>The <dfn>HTML</dfn> specification is maintained by the <dfn>W3C</dfn>.</p>
    
  • <kbd> - 定义键盘输入

      要打开帮助窗口,请按 <kbd>F1</kbd> 键。
    
  • <q> - 定义短的引用

      <p>他说:<q>这是一个引用。</q> 很有用。</p>
    
  • <samp> - 定义计算机代码的输出样本

      <p>以下是一个命令行样本:</p>
      <samp>mkdir documents</samp>
    
  • <var> - 定义数学变量或编程中的变量。

      <p>如果变量 <var>x</var> 等于 5,那么 <var>x</var> + 2 = 7。</p>
    
  • <time> - 定义日期/时间。它可以通过 datetime 属性提供一个机器可读的日期/时间格式。

      <p>我在 <time datetime="2023-04-01">2023年4月1日</time> 参加了一个会议。</p>
    

6.多媒体标签

  • <canvas> - 用来通过JavaScript和HTML的<canvas>元素来绘制图形

      <canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;">
      Your browser does not support the HTML5 canvas tag.
      </canvas>
    
  • <picture> - 定义图片容器,允许你指定多个 <source> 元素来提供图片的不同版本

      <picture>
        <source media="(min-width: 650px)" srcset="large.jpg">
        <source media="(min-width: 465px)" srcset="medium.jpg">
        <img src="small.jpg" alt="描述性文本">
      </picture>
    

7.嵌入内容标签

    暂无补充

8. 表格标签

  • <col><colgroup> - 表格中的列或列组

        <colgroup>
          <col span="2" style="background-color:yellow">
        </colgroup>
        <tr>
          <th>Firstname</th>
          <th>Lastname</th>
          <th>Age</th>
        </tr>
        <tr>
          <td>John</td>
          <td>Doe</td>
          <td>50</td>
        </tr>
      </table>
    

    (注意:<col> 示例嵌入在 <colgroup> 中)


9.表单标签

  • <datalist> - 定义输入字段的预定义选项列表

      <label for="browser">Choose a browser from this list:</label>
      <input list="browsers" name="browser" id="browser">
      <datalist id="browsers">
        <option value="Chrome">
        <option value="Firefox">
        <option value="Internet Explorer">
        <option value="Opera">
        <option value="Safari">
      </datalist>
    
  • <meter> - 定义已知范围内的标量测量或分数值

      <p>任务完成度:<meter value="7" min="0" max="10">70%</meter></p>
    

    在这个示例中,<meter> 元素显示了一个从0到10的范围内,当前值为7的进度。虽然元素内部可以包含文本(如上例中的"70%"),但这主要是为了向后兼容和提供额外的信息;<meter>的显示主要由其valueminmax属性控制。

  • <optgroup> - 定义下拉列表中的选项组

      <select name="cars" id="cars">
        <optgroup label="德国车">
          <option value="mercedes">梅赛德斯</option>
          <option value="audi">奥迪</option>
        </optgroup>
        <optgroup label="日本车">
          <option value="toyota">丰田</option>
          <option value="honda">本田</option>
        </optgroup>
      </select>
    
  • <output> - 定义不同类型的输出,比如脚本的输出

      <form oninput="x.value=parseInt(a.value)+parseInt(b.value)">
        <input type="number" id="a" value="50"> +
        <input type="number" id="b" value="50"> =
        <output name="x" for="a b"></output>
      </form>
    
  • <progress> - 表示任务的进度

      <p>下载进度:<progress value="22" max="100"></progress></p>
    

10.脚本标签

    暂无补充

11.其他标签

  • <area> - 定义图像映射内的区域(常与<map>一起使用)

      <img src="image.png" usemap="#image-map">
      <map name="image-map">
        <area shape="rect" coords="34,44,270,350" href="example.html" alt="Example">
      </map>
    
  • <map> - 定义图像映射(图像上的可点击区域)

      <img src="image.png" usemap="#image-map" alt="图像映射示例">
      <map name="image-map">
        <area shape="rect" coords="34,44,270,350" href="example.html" alt="区域 1">
        <area shape="circle" coords="100,150,50" href="another.html" alt="区域 2">
      </map>
    
  • <menu> - HTML5 中已重新定义,主要用于上下文菜单或工具栏(非导航菜单)

    注意:<menu>标签在HTML5中的用途与HTML4中的用途有所不同,且其作为上下文菜单或工具栏的用途并未被所有浏览器广泛支持。以下是一个尝试展示其用途的示例,但实际效果可能因浏览器而异:

          <menu type="context" id="myMenu">
            <menuitem type="command" label="复制" onclick="copyFunction()">
            <menuitem type="command" label="粘贴" onclick="pasteFunction()">
          </menu>
    
          <script>
            // 注意:这些函数仅作为占位符,实际实现需要更多代码
            function copyFunction() {
          
              // 复制逻辑
            }
    
            function pasteFunction() {
          
              // 粘贴逻辑
            }
          </script>
    

    (注意:这个<menu>示例可能不会在大多数浏览器中按预期工作)

  • <ruby> - 用于定义东亚文字(如中文、日文和韩文)的注音或注释。它常与 <rp>, <rt>, 和 <rtc> 标签一起使用。

  • <rp> - 定义不支持ruby注释的浏览器如何显示ruby注释的容器

  • <rt> - 定义ruby注释的文本

      <ruby><rp>(</rp><rt>Han</rt><rp>)</rp>
      </ruby>
    

    (注意:<ruby><rp><rt>标签均在 示例中展示。<ruby>, <rp>, <rt> 等标签主要用于东亚文字的注音或注释,其中,<rp>在ruby注释(东亚文字注音或注释)的上下文中使用,对于不支持ruby注释的浏览器,<rp> 标签内的内容会作为回退显示。)

  • <slot> - 属于Web Components技术中的一部分,用于在Shadow DOM中创建插槽,以便外部HTML可以插入到组件的特定位置。

      <!-- 假设有一个自定义元素 -->
      <my-component>
        <p slot="header">这是头部内容</p>
        <p>这是默认内容</p>
      </my-component>
    
      <!-- 自定义元素的Shadow DOM模板 -->
      <template id="my-component-template">
        <slot name="header"></slot>
        <p>这是不会被子元素覆盖的内容。</p>
      </template>
    
      <!-- 注意:这里需要JavaScript来将模板附加到自定义元素上,并处理slot -->
    
  • <template> - 用于定义客户端内容的隐藏部分,这些内容在加载页面时不会被显示或执行,但可以在后续被JavaScript使用。

      <template id="hiddenContent">
        <p>这是隐藏的内容,可以通过JavaScript动态插入到DOM中。</p>
      </template>
    
      <script>
        // 示例:将模板内容插入到页面
        const template = document.getElementById('hiddenContent');
        document.body.appendChild(template.content.cloneNode(true));
      </script>
    
  • <wbr> - 表示在单词内部推荐的换行位置。它对于长单词或URL在较小屏幕上的显示很有用。

      <p>这是一个非常长的单词verylongword<wbr>locations.</p>
    

    (注意:<wbr> 标签的效果取决于浏览器的实现和上下文,有时可能不太明显。)


  • <i> - 在HTML5中,<i>标签不仅仅用于表示斜体样式,还可以用来表示文本中的某种特殊风格、语气或者其他非文本样式的语义含义,如外文单词、生物分类、科技术语等。但需要注意的是,从纯语义化的角度来看,当你想表达强调或重要性时,应该使用<em><strong>标签。

    • 作为样式标签(斜体文本)

      <p>这是一段普通的文本,而<i>这段文本将以斜体显示</i></p>
      

      其中,<i>标签被用来将一部分文本以斜体样式呈现。

    • 作为语义标签(非斜体样式,但表达特定语义)

      虽然<i>标签在HTML5中被赋予了更多的语义含义,但实际的视觉表现(是否斜体)还是取决于CSS。不过,我们可以从语义化的角度来考虑它的使用:

      <p>请注意,<i>这里提到的技术术语</i>可能对于初学者来说不太熟悉。</p>
      

      其中,<i>标签被用来表示一段文本是技术术语,而不仅仅是改变它的样式。然而,如果你想要明确这个术语的语义(比如它是一门编程语言的名字),你可能会结合使用<i>标签和class属性来进一步说明:

      <p>请注意,<i class="tech-term">这里提到的技术术语</i>可能对于初学者来说不太熟悉。</p>
      

      然后,在CSS中,你可以为这个类添加样式(虽然在这个上下文中,样式可能不是必需的,但你可以用它来强调术语,比如改变颜色或添加背景):

      .tech-term {
             
          /* 你可以在这里添加样式,但在这个例子中,我们主要关注语义 */
      }
      

      然而,值得注意的是,对于技术术语或其他需要特殊表示的文本,HTML5引入了<mark><small><dfn>等更具体的标签,这些标签提供了更明确的语义含义。因此,在实际开发中,建议根据文本的具体含义来选择合适的标签。对于<i>标签,它仍然可以用于表示斜体文本或具有特定风格、语气的文本,但在追求语义化的HTML时,请考虑是否有更合适的标签可供选择。

PS:

参考文档:https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element

MDN Web Docs(全称Mozilla Developer Network,谋智开发者网络),提供了关于Web技术、开放网络应用和Web标准的详细、权威、可靠的文档,可以深入学习Web技术以及能够驱动Web的软件,包括网络标准(例如CSS、HTML和JavaScript)和开发开放网络应用等。

相关文章
|
12天前
|
人工智能 JavaScript Ubuntu
5分钟上手龙虾AI!OpenClaw部署(阿里云+本地)+ 免费多模型配置保姆级教程(MiniMax、Claude、阿里云百炼)
OpenClaw(昵称“龙虾AI”)作为2026年热门的开源个人AI助手,由PSPDFKit创始人Peter Steinberger开发,核心优势在于“真正执行任务”——不仅能聊天互动,还能自动处理邮件、管理日程、订机票、写代码等,且所有数据本地处理,隐私完全可控。它支持接入MiniMax、Claude、GPT等多类大模型,兼容微信、Telegram、飞书等主流聊天工具,搭配100+可扩展技能,成为兼顾实用性与隐私性的AI工具首选。
19213 107
|
4天前
|
人工智能 安全 Linux
【OpenClaw保姆级图文教程】阿里云/本地部署集成模型Ollama/Qwen3.5/百炼 API 步骤流程及避坑指南
2026年,AI代理工具的部署逻辑已从“单一云端依赖”转向“云端+本地双轨模式”。OpenClaw(曾用名Clawdbot)作为开源AI代理框架,既支持对接阿里云百炼等云端免费API,也能通过Ollama部署本地大模型,完美解决两类核心需求:一是担心云端API泄露核心数据的隐私安全诉求;二是频繁调用导致token消耗过高的成本控制需求。
3935 6
|
7天前
|
人工智能 安全 API
OpenClaw“小龙虾”进阶保姆级攻略!阿里云/本地部署+百炼API配置+4种Skills安装方法
很多用户成功部署OpenClaw(昵称“小龙虾”)后,都会陷入“看似能用却不好用”的困境——默认状态下的OpenClaw更像一个聊天机器人,缺乏连接外部工具、执行实际任务的能力。而Skills(技能插件)作为OpenClaw的“动手能力核心”,正是打破这一局限的关键:装对Skills,它能帮你自动化处理流程、检索全网资源、管理平台账号,真正变身“能做事的AI管家”。
4869 7
|
8天前
|
人工智能 安全 前端开发
Team 版 OpenClaw:HiClaw 开源,5 分钟完成本地安装
HiClaw 基于 OpenClaw、Higress AI Gateway、Element IM 客户端+Tuwunel IM 服务器(均基于 Matrix 实时通信协议)、MinIO 共享文件系统打造。
7564 8
|
7天前
|
人工智能 API 网络安全
Mac mini × OpenClaw 保姆级配置教程(附阿里云/本地部署OpenClaw配置百炼API图文指南)
Mac mini凭借小巧机身、低功耗和稳定性能,成为OpenClaw(原Clawdbot)本地部署的首选设备——既能作为家用AI节点实现7×24小时运行,又能通过本地存储保障数据隐私,搭配阿里云部署方案,可灵活满足“长期值守”与“隐私优先”的双重需求。对新手而言,无需复杂命令行操作,无需专业技术储备,按本文步骤复制粘贴代码,即可完成OpenClaw的全流程配置,同时接入阿里云百炼API,解锁更强的AI任务执行能力。
6146 1
|
16天前
|
人工智能 自然语言处理 JavaScript
2026年Windows+Ollama本地部署OpenClaw保姆级教程:本地AI Agent+阿里云上快速搭建
2026年OpenClaw凭借本地部署、私有化运行的特性,成为打造个人智能体的核心工具,而Ollama作为轻量级本地大模型管理工具,能让OpenClaw摆脱对云端大模型的依赖,实现**本地推理、数据不泄露、全流程私有化**的智能体验。本文基于Windows 11系统,从硬件环境准备、Ollama安装与模型定制、OpenClaw部署配置、技能扩展到常见问题排查,打造保姆级本地部署教程,同时补充阿里云OpenClaw(Clawdbot)快速部署步骤,兼顾本地私有化需求与云端7×24小时运行需求,文中所有代码命令均可直接复制执行,确保零基础用户也能快速搭建属于自己的本地智能体。
18685 116
|
10天前
|
人工智能 JSON API
保姆级教程:OpenClaw阿里云及本地部署+模型切换流程+GLM5.0/Seedance2.0/MiniMax M2.5接入指南
2026年,GLM5.0、Seedance2.0、MiniMax M2.5等旗舰大模型相继发布,凭借出色的性能与极具竞争力的成本优势,成为AI工具的热门选择。OpenClaw作为灵活的AI Agent平台,支持无缝接入这些主流模型,通过简单配置即可实现“永久切换、快速切换、主备切换”三种模式,让不同场景下的任务执行更高效、更稳定。
6669 4
|
10天前
|
人工智能 JavaScript API
保姆级教程:OpenClaw阿里云/本地部署配置Tavily Search skill 实时联网,让OpenClaw“睁眼看世界”
默认状态下的OpenClaw如同“闭门造车”的隐士,仅能依赖模型训练数据回答问题,无法获取实时新闻、最新数据或训练截止日期后的新信息。2026年,激活其联网能力的最优方案是配置Tavily Search技能——无需科学上网、无需信用卡验证,每月1000次免费搜索额度完全满足个人需求,搭配ClawHub技能市场,还能一键拓展天气查询、邮件管理等实用功能。
6616 5