<template> 元素,用于描述一个标准的以 DOM 为基础的方案来实现客户端模板。该模板允许你定义一段可以被转为 HTML 的标记,在页面加载时不生效,但可以在后续进行动态实例化。( 它们是用来放置一大团 HTML 的地方,就是那些你不想让浏览器弄乱的标记...不管它是出于什么理由。)
特性检测
function supportsTemplate() {
  return 'content' in document.createElement('template');
}
 
if (supportsTemplate()) {
  // 检测通过!
} else {
  // 使用旧的模板技术或库。
}
 
声明模板
<template id="mytemplate">
  <img src="" alt="great image">
  <div class="comment"></div>
</template>
那个空图片。这是故意留空的。因为页面加载时不会请求图片,因此就不会产生 404 或控制台错误。我们可以随后动态生成图片的 URL。
 
 
用 <template> 来包裹内容为我们提供了几个重要特性
1  它的内容在激活之前一直处于惰性状态。本质上,这些标记就是隐藏的 DOM,它们不会被渲染。
 
2  处于模板中的内容不会有副作用。脚本不会运行,图片不会加载,音频不会播放,...直到模板被使用。
 
3  内容不在文档中。在主页面使用 document.getElementById() 或 querySelector() 不会返回模板的子节点。
 
4  模板能够被放置在任何位置,包括 <head>,<body>,或 <frameset>,并且任何能够出现在以上元素中的内容都可以放到模板中。 注意,"任何位置"意味着 <template> 能够安全的出现在 HTML 解析器不允许出现的位置...几乎可以作为任何内容模型的子节点。 它也可以作为 <table> 或 <select> 的子元素:
 
<table>
<tr>
  <template id="cells-to-repeat">
    <td>some content</td>
  </template>
</tr>
</table>
 
 
激活一个模板
 
要使用模板,你得先激活它。否则它的内容将永远无法渲染。 激活模板最简单的方法就是使用 document.importNode() 对模板的 .content 进行深拷贝。 .content 为只读属性,关联一个包含模板内容的 DocumentFragment。
 
var t = document.querySelector('#mytemplate');
// 在运行时填充 src。
t.content.querySelector('img').src = 'logo.png';
 
var clone = document.importNode(t.content, true);
document.body.appendChild(clone);
在对模板进行冲压(stamping out)后,它的内容开始"启用"。 在本例中,内容被拷贝,发出图片请求,最终的标记得以渲染。
 
http://www.html5rocks.com/zh/tutorials/webcomponents/template/

转载于:https://www.cnblogs.com/chuangweili/p/5164076.html

template 标签相关推荐

  1. vue 修改模板{{}}标签_vue.js - Vue单文件的template标签

    问 题 单文件中用template标签包含html模板内容,但我现在要用一个template标签+v-for来包含多个元素,此时webpack编译时报错了. 下面是vue文件部分内容: {{ bran ...

  2. template标签的用法总结

    Template标签用法总结 - Happy work, happy life一.html5中的template标签html中的template标签中的内容在页面中不会显示.但是在后台查看页面DOM结 ...

  3. Vue进阶(幺肆玖):template 标签

    文章目录 一.HTML5 中的 template 标签 二.Vue 中的 template 标签 三.注意事项 四.拓展阅读 一.HTML5 中的 template 标签 html5中template ...

  4. React中Fragment标签和空标签的使用(vue中的template标签类似)

    Fragment作用: 类似于vue中的template标签,将当前dom不渲染后页面.在多层循环中可以添加key属性,其他属性不可以添加.不然会警告,提示只能有key属性和children vdom ...

  5. Vue.js 使用script或template标签创建组件模板内容

    为了使HTML代码和JavaScript代码是分离的,便于以后的阅读和维护,我们可以并建议使用<script>或<template>标签创建组件模板内容. <!DOCTY ...

  6. 关于template标签用法总结(含vue中的用法总结)

    文章目录 一.html5中的template标签 二.template标签操作的属性和方法 三.vue中的template 1.template标签在vue实例绑定的元素内部 2.vue实例中的tem ...

  7. template标签

    template标签,顾名思义,模板的意思  HTML5提供的新标签,更加规范和语义化  可以把列表项放入template标签中,然后进行批量渲染 注:template标签display属性默认为no ...

  8. vue中的template标签

    1.template标签,HTML5提供的新标签,更加规范和语义化 :可以把列表项放入template标签中,然后进行批量渲染 <template id="tem">& ...

  9. vue template html属性,详解template标签用法(含vue中的用法总结)

    一.html5中的template标签 html中的template标签中的内容在页面中不会显示.但是在后台查看页面DOM结构存在template标签.这是因为template标签天生不可见,它设置了 ...

  10. Django - Template标签操作

    Template变量和Template标签: 变量:{{ xxx }} 标签:{% tag %} load staticfiles url static if for csrf_token(跨站请求标 ...

最新文章

  1. 风变编程python 知乎_如何看待风变编程的 Python 网课?
  2. vue嵌套数据多层级里面的数据不自动更新渲染dom
  3. shell 循环 read line
  4. Java总结篇系列:Java泛型
  5. C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现
  6. 【Linux】【MySQL】CentOS7安装最新版MySQL8.0.13(最新版MySQL从安装到运行)
  7. 计算机体系结构a类会议,通信、计算机等领域常见A类国际学术会议.PDF
  8. c语言全文件操作函数,C语言文件操作函数大全
  9. TrueCrypt编译记录
  10. 国税计算机基础知识,国税系统计算机基础知识培训课件精要.ppt
  11. 解读 | 关于阿里巴巴架构大调整,有 7 个重点值得特别关注
  12. esp分区引导修复失败_UEFI引导修复教程 win10 MBR无损转GPT分区后修复启动
  13. 项目方案及推进项目的基本流程思路
  14. 悠闲时光增强现实之游戏王(Yu-Gi-Oh)
  15. centos 之网络配置
  16. 瘟疫期间整理出万有引力的牛顿都做了哪些贡献?
  17. writing science_Science子刊: 类配对分析法揭示孤独症患者肠道菌群解毒功能受损
  18. C语言/C++【switch语句详解(用法、规则、流程图、实例)】
  19. 【路径规划】基于matlab拓扑图和跟随领导者机器人编队路径规划【含Matlab源码 2500期】
  20. 干货!12个程序员证书​,含金量超高

热门文章

  1. Android学习笔记(24):进度条组件ProgressBar及其子类
  2. Foundation框架集合 ---- NSArray和NSMutableArray
  3. mysql的主从,主主,半同步
  4. 我的ubunt开发环境 (操作备份)
  5. 分布式文件系统之MogileFS的使用
  6. win7下PHP运行环境搭建(apache2+mysql+php)
  7. SQL Server 变量名称的Collcation跟Instance还是跟当前DB?
  8. 三菱数据移位指令_三菱plc移位指令用法详解
  9. python tkinter 中文文档_Python实现中文文档的简体与繁体互相转换
  10. 孪生网络图像相似度_孪生网络:使用双头神经网络进行元学习