Cet article présente principalement la balise de modèle en HTML5, qui est une connaissance importante pour démarrer avec HTML5. Les amis qui en ont besoin peuvent se référer à
1. Introduction à HTML5. éléments de modèle L'élément visage
peut essentiellement être déterminé comme n'étant apparu qu'en 2013. A quoi sert-il ? Comme son nom l'indique, il est utilisé pour déclarer qu'il s'agit d'un « élément de modèle ».
Actuellement, nous intégrons le modèle HTML dans HTML, qui s'écrit souvent ainsi :
<script type="text/template"> // ... </script>
En fait, il n'existe pas Les méthodes d'écriture standard telles que type="text/template" et l'apparence de l'élément sont destinées à rendre le modèle HTML plus standard et standardisé.
Avant, nous avons peut-être utilisé
Regardez les quatre images HTML imbriquées suivantes. En même temps, le contenu de l'image n'est pas affiché et il n'y a aucune demande d'écriture :
<script type="text/template"> <img src="mm1.jpg"> </script> <textarea style="display: none;"> <img src="mm1.jpg"> </textarea> <xmp style="display: none;"> <img src="mm1.jpg"> </xmp> <template> <img src="mm1.jpg"> </template>
1. Caractère caché du contenu des balises
La spécificité du <script> 🎜>, par conséquent, le contenu généré n'est pas affiché. Cependant, dans DreamWeaver, cette méthode d'écriture a un gros problème, c'est-à-dire que lors de l'écriture d'un modèle HTML dans un script, la balise automatiquement fermée est toujours </script>
. En fait, actuellement, tous les navigateurs le prennent en charge. Cependant, il ne peut pas être assimilé à la balise <pre class="brush:php;toolbar:false"> Il y a une balise <img> à l'intérieur de <pre class="brush:php;toolbar:false">, qui affiche une image, tandis que <xmp> affiche un morceau de code HTML. Cependant, comme <textarea>, si le contenu n'est pas affiché, des paramètres supplémentaires display: none;<a href="http://www.php.cn/wiki/169.html" target="_blank"> sont requis. Display: none; n'est pas défini sur la balise <template> Pourquoi? Cela profite simplement des caractéristiques originales de l'élément de balise <template>, qui est généré avec display:none. Dans le même temps, le contenu interne de l'élément de modèle ne sera pas affiché. Il n’est donc pas nécessaire de se cacher. C'est une des caractéristiques de l'élément balise HTML5 <template> : le contenu caché de la balise </a><br/></p>2. La position arbitraire de la balise<p><strong>En plus de la balise. masquage naturel des sous-éléments <template> ci-dessus, la balise <template> a également une fonctionnalité, qui est la position arbitraire, qui est très similaire à la balise <script> placé dans <<br/>head</strong>> ou dans <body> <a href="http://www.php.cn/html/html-HEAD-2.html" target="_blank"></a></p>3. Invalidité des childNodes <p><strong>Bien qu'à l'œil nu, il semble qu'il y ait de nombreuses sous-balises dans la balise <template> ici. En supposant que la variable <br/> </strong>template est une balise <template> DOM que nous avons obtenue (elle contient beaucoup de code HTML), vous constaterez que template.childNodes est vide. Nous pouvons utiliser template.innerHTML pour obtenir le fragment HTML complet. Si vous devez obtenir des "pseudo-éléments enfants". Il existe un moyen, OK, gardez les yeux ouverts et utilisez l'attribut content. <a href="http://www.php.cn/wiki/70.html" target="_blank"></a>template.content renverra un fragment de document, que vous pouvez comprendre comme un autre document. Ensuite, vous pouvez utiliser certaines API de requête sous le document pour obtenir les "pseudo-éléments enfants" dans la balise <template> Par exemple, pour obtenir le premier élément de l'image c'est : </p><p></p>Code CSS<p class="codeHead"><span class="lantxt">Copiez le contenu dans le presse-papier</span><span style="CURSOR: pointer" class="copyCodeText"></span></p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:html;toolbar:false">var image_first = template.content.querySelector("img");
Si le navigateur est aveugle et pense que est un élément personnalisé ordinaire, l'affichage ressemblera à ce qui suit et les balises internes seront rendues selon les balises ordinaires. 如果浏览器与时俱进,则显示会是下面这样,自身CSS渲染,内部标签直接异空间不渲染,例如Chrome: 也就是说,虽然从CSS的角度看,就是个跟CSS打得火热的普通元素,但是,从HTML角度看,其犹如带土的写轮眼,可以让内部标签转移到异空间,血迹界限般稀有。 默认情况下,是隐藏的,实际是默认其display属性为none. 使用下面的代码一测便知: 因此,demo中才设置了如下的CSS声明: CSS Code复制内容到剪贴板window.getComputedStyle(template).display; // 结果是"none"
template { display: block; ... }