HTML <template> 标签

2025年3月25日 | 阅读 7 分钟

模板是在客户端或服务器端创建的。如今,大多数网站都使用某种形式的模板。当请求进入服务器时,服务器的模板引擎会将必要的模板组合起来,并将构建好的页面发送到浏览器。任何不在服务器端完成的客户端模板都可以通过支持模板的前端框架或特定的模板库来实现。

由于 React 和其他现代 JavaScript 框架非常受欢迎,许多人会忽略 HTML 和纯 JavaScript。如今,JavaScript 和纯 HTML 仍然是构建大多数网站的基础。HTML5 中的“template”元素为开发人员提供了一种在浏览器中管理模板的可靠方法。HTML5 的 <template> 元素为开发人员提供了一种强大的方法来管理浏览器中的模板,从而简化和提高整个 Web 编写过程的可维护性。

在本文中,我们将了解 HTML 模板标签,如何使用它们,以及它们的优点和缺点。

含义与示例

当网站加载时,某些对用户隐藏的 HTML 内容会被放置在 <template> 标签内作为容器。

之后可以使用 JavaScript 来渲染 <template> 标签内的内容。

如果我们有可重用的 HTML 代码,我们可以在明确请求后使用 <template> 元素。如果我们想在不使用模板元素的情况下实现这一点,我们必须在 JavaScript 中编写 HTML 代码,以阻止浏览器渲染它。

<template> 标签的含义是什么?

名为“template”的 HTML5 元素用于容纳 HTML 代码片段,这些片段在网站加载后不会立即显示。我们可以将此元素复制并粘贴到 HTML 页面中。由于它存储在客户端,因此 <template> 的内容对客户端是隐藏的。模板在浏览器中的渲染要到我们使用 JavaScript 激活它们时才开始。JavaScript 用于将内容从模板添加到网页,或者从网页将内容添加到模板,JavaScript 是必需的。

如果我们想在 HTML 文档中反复重用相同的内容而不做任何更改,它也会很有用。

<template> 标签可以放置在 <head>、<body>、<frameset> 或 <table> 元素内的任何位置。

在 HTML5 中,<template> 标签是一个全新的元素。

语法

Web 模板类型

网站模板可以作为独立的 zip 文件下载,作为自定义网页构建器界面组件的一部分,或者作为 HTML 编辑器程序的一部分。它们可以具有响应式、自适应、静态或移动设备专属的设计。文件扩展名包括 .html、.htm、.php 和 .asp。它们都将使用 HTML 和 CSS 代码创建。无论是在台式电脑、平板电脑还是智能手机上,如果标记为“响应式”,布局的宽度都会适应独特的设备显示屏幕。

Web 模板可以包含什么?

设计中可以包含的功能包括文本、.jpg、.png 或 .gif 图片、jQuery 和 CSS3 动画、购物车、联系表单、动态图片库和幻灯片、PDF 下载链接页面以及视频播放器(包括嵌入的 YouTube 视频)。

在选择网站模板时,请确保它已包含我们 Web 开发项目所需的功能、脚本和应用程序,因为 Web 模板样式和代码因供应商而异。通过添加文本、图库图片、脚本和第三方插件,可以自定义预制页面。提供的图库图片可以根据项目需要进行修改或替换为用户自己的 .jpg 文件。

HTML 标记的模板存储在内置的 <template> 元素中。浏览器会忽略该内容,只验证语法,但我们可以通过 JavaScript 访问它并利用它来生成新组件。

理论上,我们可以设计任何不可见的 HTML 元素并用它来存储 HTML 标记。是什么让 <template> 与众不同?

首先,即使它通常需要一个正确的封闭标签,它的内容可以是任何可接受的 HTML。

例如,我们可以插入以下表格行 <tr>

模板示例

输出

HTML template tag

当我们点击“显示内容”时,会显示一朵花,如下图所示。

HTML template tag

模板元素的另一个示例

输出

HTML template tag

我们来分解一下

  1. 第 1 行: 这个特殊的标签出现在页面开头,用于指定所用代码的类型。
  2. HTML 页面通过第 2 行和第 12 行的 HTML 标签打开和关闭。纸张包含其所有内容。
  3. 第 3 行和第 7 行的 head 标签指定了文档的 head 将出现在哪里。下面的项目是与论文相关的补充信息。
  4. 第 4 行的 title 标签指定了文档的标题。它将显示在浏览器窗口的最顶部。
  5. 第 5 行和第 6 行的 meta 标签用于描述文档。
  6. 第 9 行和第 11 行的 body 标签包含文档的实际内容。

文档类型声明 (Doctype)

这个标签应该始终放在页面上。它应该放在最顶部的 html 标签之前。你会注意到这个标签以感叹号 (!) 开头,而不是其他标签。

严格来说,它不是一个标签,而是对浏览器如何读取其余文本的指令。我们只用“HTML”来指代 HTML5。由于可以使用多种 HTML,因此识别是哪一种很重要。

Head (头部)

辅助数据放置在 HTML 文档的 head 部分。虽然不是文本的一部分,但这些信息与文本相关。有各种各样的东西。

然而,上述模板涵盖了任何页面所需的 LSI 元素。

Title (标题)

我们可以使用 title 标签为文档提供标题。它被使用了多次

  1. 它将显示在浏览器窗口的顶部。
  2. 您收藏的此页面版本的标题将在此处使用。
  3. 在搜索引擎中列出您的页面时,它们会考虑标题。
  4. 当有人从另一个网站链接到您的页面时,可以使用标题。
  5. 考虑到它被使用的所有位置,标题标签可能非常重要。花一些时间来确保它既简短又详细。

Meta 标签

Description 和 keywords 的两个 meta 标签随后出现在 head 中。这些可以被其他系统使用(例如,当您的页面链接到社交媒体和其他共享网站时),并且被搜索引擎使用(程度不同)。

Description 是页面主题的摘要。这通常会出现在搜索引擎结果页面中,位于您的标题下方。

keywords meta 标签用于提供一组适合页面主题的术语。以前,搜索引擎会给您页面的此部分一些权重,但由于滥用,它目前权重非常低。但是,您仍应包含它以求完整性,并且还因为如果您不包含它,某些搜索引擎可能会将您列入黑名单。他们认为,如果您懒惰,无法抽出时间来包含此标签,那么您页面的质量将会较低,因为您可能在其他方面也很懒惰。

Body (主体)

您页面的实际内容放在这里。所有这些内容通常都会包含在描述其类型的标签中。为简单起见,我们在前面的示例中省略了此形式。我们将在下一节开始演示可以应用的各种标签类型。

<template> 元素的优点

  1. 它同时支持 HTML 事件和全局属性。
  2. 它有助于开发可重用的标记。
  3. 它支持广泛的浏览器。
  4. 它适用于前端框架。
  5. 网站性能和速度得到提升,因为它仅在被激活时运行。

<template> 元素的缺点

  1. 它仅使用 JavaScript。禁用 JavaScript 的用户浏览器将看不到模板元素生成的输出。
  2. 可访问性问题;某些旧屏幕阅读器受到影响。

总结

<template> 内容可以是任何语法正确的 HTML。

<template> 中的内容被视为“文档外”的,并且不影响任何内容。

我们可以使用 JavaScript 访问 template.content 并复制它,以便在另一个组件中重用它。

<template> 标签非常独特,因为它:

  1. 作为在脚本中使用模板字符串的替代方法,浏览器会在其中验证 HTML 语法。
  2. 但允许使用任何顶级 HTML 元素,包括那些没有正确包装器(如 <tr>)就无用的元素。
  3. 当被插入到文档中时,内容会变得可交互:脚本会运行,<videos autoplay> 等。
  4. <template> 元素没有内置的迭代机制、数据绑定或变量替换,但我们可以在其之上添加内容。

下一个主题HTML textarea 标签