HTML5 中没有 标签,它不是标准标签,浏览器将其视为未知自定义元素,不解析、无 content 属性;唯一合法原生模板标签是 。

HTML5 中没有 <_template> 标签
直接说结论:<_template> 不是 HTML5 标准标签,浏览器会把它当作未知的自定义元素处理,不会触发任何模板解析逻辑。你看到的可能是拼写错误、框架私有语法(比如旧版 Angular 1.x 的 ),或者误把 写成了下划线前缀。
是唯一合法的原生模板标签
HTML5 规范中只定义了 (无下划线),它的内容默认不渲染、不执行脚本、不加载资源,直到被 JavaScript 显式克隆并插入 DOM。
- 必须闭合:
...,不能自闭合 - 支持所有 HTML 内容,包括
、、(但图片不会发起请求) - DOM 中可通过
document.querySelector('template')获取,用content.cloneNode(true)提取文档片段
Default
Content here
为什么有人写成 <_template>?常见混淆点
这不是浏览器行为,而是开发者手动约定或框架遗留导致的误解:
cqcms通用企业建站介绍 苍穹企业网站管理系统(CQCMS)软件是国产PHP网站内容管理系统:CQcms内容管理系统 ,它将成为您轻松建站的利器。模板全部使用文件形式保存,对用户设计模板、网站升级转移均提供很大的便利,健壮的模板标签为站长DIY自己的网站提供了强有力的支持。MVC框架,自定义标签,模板文件修改非常方便,PC+WAP响应式布局,一个域名,自动识别终端,一个后台同时管理PC和wap。
立即学习“前端免费学习笔记(深入)”;
- 某些构建工具(如早期 Webpack + HTML loader)允许用
<_template>作为占位符,由插件替换——它本身不参与 HTML 解析 - AngularJS 1.x 曾用
或存储模板,和<_template>无关 - 手误:把
错打成<_template>,又没报错(因为浏览器忽略未知标签),导致误以为“能用” - Shadow DOM 或自定义元素中,有人用
<_template>当作语义化注释,但它对浏览器毫无意义
如何判断一个模板是否真正生效?
别依赖标签名是否存在,看三件事:
-
是否在 DOM 中可见:打开 DevTools → Elements 面板,搜索
,确认其content属性非空且已挂载到真实节点 -
脚本是否执行:在
内放,刷新页面——没输出才对;如果输出了,说明它被当普通 HTML 解析了(比如被错误地放在外或未闭合) -
资源是否加载:放
在
里,检查 Network 面板——不应出现test.jpg请求
只要这三点满足,才是真正的 HTML5 模板机制在工作。<_template> 连第一步都过不了——它只是个空壳标签,连 content 属性都没有。










