html template php 代码,HTML5中<template>标签的详细介绍(图文)

本文详细介绍了HTML5中的template标签,它用于声明模板元素,提供内容隐藏性和位置任意性。template的内容默认不显示,可通过content属性访问。此外,文章讨论了template与CSS的交互,以及如何克隆和使用模板。template元素在不同浏览器的兼容性情况也进行了说明。
摘要由CSDN通过智能技术生成

这篇文章主要介绍了HTML5中的template标签,是HTML5入门中的重要知识,需要的朋友可以参考下

一、HTML5 template元素初面

元素,基本上可以确定是2013年才出现的。干嘛用的呢,顾名思意,就是用来声明是“模板元素”。

目前,我们在HTML中嵌入模板HTML,往往是类似这样的写法:

// ...

实际上,并不存在type="text/template"这样的标准写法,元素的出现旨在让HTML模板HTML变得更加标准与规范。

以前,我们可能还使用过或者(废止但依然可用)嵌套非转义的HTML标签代码,实现一些特定的前端功能,但,同样的,跟上面的流行用法一样,都是不规范的。从未来趋势来讲,显然标签才是王道。但是,兼容性是个不可忽略的问题,因此,就算扯得很多很少,实际价值有有限,因此,这里仅仅简单介绍下。

二、HTML5 template元素复面

看下下面四种嵌套图片HTML,同时图片内容不显示,不会有请求的写法:

mm1.jpg

mm1.jpg

mm1.jpg

mm1.jpg

1. 标签内容隐藏性

这个很讨厌的。

为文本域,里面嵌套的HTML片段会被当做文本域的值。但,文本域本身是可见的,因此需要额外的设置display: none;

是个很老很特殊的属性,语义为example,示例。据说后来被
标签取代而废止,实际上,目前,所有的浏览器都是支持的。但是,其跟
标签不能划等号。
里面有个标签,显示的则是一张图片,而呈现的就是一段HTML代码。不过,与一样,内容不显示的话,还需要额外的设置display: none;

上面这个标签上没有设置display: none;,注意到了没有。为何?这只是发挥了标签元素的原本特性,天生display:none,同时模板元素内部内容是死活不会呈现的。因此,无需设置隐藏。这就是HTML5 标签元素特征之一:标签内容隐藏性.

2. 标签位置任意性除了上面子元素天然隐藏外,标签还有一个特性,就是位置任意性,这非常类似

3. childNodes无效性虽然,肉眼看上去是标签里面还有很多子标签,这种惯性思维在这里是不受用的。假设变量template是我们获得的一个标签DOM(里面一大堆HTML代码),你会发现:template.childNodes是个空大屁。我们可以使用template.innerHTML获取完整的HTML片段。如果你非得获取“伪子元素”。也是有办法的,OK,睁大眼睛,要使用content属性。

template.content会返回一个文档片段,你可以理解为另外一个document,然后,使用document下的一些查询API就可以获得标签里面的“伪子元素”了。例如,获得第一张图片元素则是:

CSS Code复制内容到剪贴板var image_first = template.content.querySelector("img");三、HTML5 template元素终面

您可以狠狠地点击这里:HTML5 template模板元素体验demo

模板元素与CSS如果浏览器有眼不识泰山,认为就是个普通的自定义元素,则显示的就会使下面这个样子,内部的标签按照一般的标签渲染了。

如果浏览器与时俱进,则显示会是下面这样,自身CSS渲染,内部标签直接异空间不渲染,例如Chrome:

2015619175843048.png?2015519175852

也就是说,虽然从CSS的角度看,就是个跟CSS打得火热的普通元素,但是,从HTML角度看,其犹如带土的写轮眼,可以让内部标签转移到异空间,血迹界限般稀有。

默认情况下,是隐藏的,实际是默认其display属性为none. 使用下面的代码一测便知:window.getComputedStyle(template).display; // 结果是"none"

2015619175903356.png?2015519175912

因此,demo中才设置了如下的CSS声明:

CSS Code复制内容到剪贴板template { display: block; ... }模板的克隆

如果你是在HTML字符串上处理,类似于现在流行的MVC框架或模板技术,则template.innerHTML足矣。然,比

CSS Code复制内容到剪贴板var clone = document.importNode(template.content, true);然后,你就可以用append节点(appendChild)的方式,加载模板内容了,而不是(没得选择)append字符串加载模板内容。标题是“简介”,因此,不展开,也不放具体的实例了(若有兴趣,可参考文末的参考文章),大家知道有这么回事就好。四、HTML5 template面试小结

至此,元素的行为、表现以及一些方法基本上有了大致的认识,如果这是场面试的话,则我对的评价还是挺高的,特殊场景使用的特殊利器,一些类似“异空间”的设计也是让人大开眼界,这个元素要比之类的HTML5元素更受欢迎更受关注也更有潜力。

临近最后,放上兼容性表,IE浏览器拖了好大的后腿,不过我表示很淡定,因为对IE早已麻木!

兼容性

2015619175925620.png?2015519175933

以上就是HTML5中标签的详细介绍(图文)的详细内容,更多请关注php中文网其它相关文章!

article_wechat2021.jpg?1111

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我了解了您的问题。以下是我的回答: 根据您的要求,我为您提供了一个示例代码,可以在首页应用 <template>、<import> 和 <include> 标签,并输出个人信息,以及页头、页脚的信息。 主要代码: ``` <template> <div> <header> <h1>{{header}}</h1> </header> <main> <h2>{{content}}</h2> <p>{{name}}</p> <p>{{job}}</p> </main> <footer> <p>{{footer}}</p> </footer> </div> </template> <import src="./header.html"></import> <import src="./footer.html"></import> <include src="./personal-info.html"></include> <script> export default { name: 'Home', data() { return { header: '这里是首页', content: '欢迎来到我的个人主页', footer: '版权所有 ©2021', name: '', job: '' } }, mounted() { this.name = this.$refs.personalInfo.name; this.job = this.$refs.personalInfo.job; } } </script> ``` 在上面的代码,我们使用了 <template> 标签来定义页面的模板,其包括页头、页脚和主体部分。同时利用 <import> 标签引入了头部和尾部的 HTML 文件,以及 <include> 标签引入了个人信息的 HTML 文件。 在 JavaScript 部分,我们定义了一个名为 Home 的组件,并使用 data() 函数初始化了一些数据。同时,利用 mounted() 钩子函数来获取个人信息的数据并将其赋值给组件的变量。最终,我们导出了 Home 组件,以便在项目使用。 个人信息文件 personal-info.html: ``` <div> <p ref="name">姓名:张三</p> <p ref="job">职业:前端工程师</p> </div> ``` 页头文件 header.html: ``` <header> <h1>这里是页头</h1> </header> ``` 页脚文件 footer.html: ``` <footer> <p>这里是页脚</p> </footer> ``` 在使用上述代码后,您可以得到一个包含个人信息、页头、页脚的首页,如下图所示: ![运行截图](https://img-blog.csdnimg.cn/20220113091523498.png) 希望上述回答对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值