Tienda
1


















La imagen muestra un fondo azul con un texto centrado en letras blancas que muestra la palabra template

Última modificación: 2024-06-18

Instrucción HTML5: <template>

Descripción del <template>

El elemento <template> en HTML5 proporciona un mecanismo para almacenar contenido del DOM que no se renderiza cuando la página se carga, pero que puede ser instanciado de forma dinámica mediante scripts de JavaScript. Ese contenido puede incluir HTML estándar, texto y otros elementos HTML. Esencialmente, este elemento actúa como un contenedor para el contenido que el navegador ignora hasta que se inserta en el documento DOM.

Atributos del elemento <template>

El elemento <template> es bastante simple en cuanto a sus atributos:

  1. Globales: Al igual que muchos otros elementos HTML, <template> soporta los atributos globales. Estos incluyen:
    • accesskey
    • class
    • contenteditable
    • data-*
    • dir
    • draggable
    • hidden
    • id
    • lang
    • spellcheck
    • style
    • tabindex
    • title
    • translate

Sin embargo, el elemento <template> no tiene atributos específicos propios fuera de los atributos globales que ya mencionamos.

Uso de <template> en HTML5: Ejemplos Sencillos

A continuación se presentan algunos ejemplos básicos para ilustrar cómo se utiliza el elemento <template> en HTML5.

Ejemplo 1: Inserción Dinámica de Contenido

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Ejemplo de Uso de <template></title>
</head>
<body>
    <h1>Lista de miembros</h1>
    <ul id="memberList"></ul>

    <template id="memberTemplate">
        <li class="member-item">
            <span class="member-name"></span>
            <span class="member-role"></span>
        </li>
    </template>

    <script>
        // Miembros que vamos a insertar
        const members = [
            { name: 'Juan Perez', role: 'Desarrollador' },
            { name: 'Maria López', role: 'Diseñadora' },
            { name: 'Carlos García', role: 'Gerente de Proyecto' },
        ];

        const memberList = document.getElementById('memberList');
        const template = document.getElementById('memberTemplate').content;

        members.forEach(member => {
            const clone = document.importNode(template, true);
            clone.querySelector('.member-name').textContent = member.name;
            clone.querySelector('.member-role').textContent = member.role;

            memberList.appendChild(clone);
        });
    </script>
</body>
</html>

En este ejemplo:

  • Se define un template con la estructura de un ítem de miembro.
  • Usando JavaScript, clonamos ese template para cada miembro y actualizamos el contenido antes de insertarlo en la lista.

Ejemplo 2: Componentes Reutilizables

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Ejemplo de Componentes Reutilizables con <template></title>
</head>
<body>
    <h1>Artículos Destacados</h1>
    <div id="articlesContainer"></div>

    <template id="articleTemplate">
        <article class="article">
            <h2 class="article-title"></h2>
            <p class="article-content"></p>
        </article>
    </template>

    <script>
        // Artículos que vamos a insertar
        const articles = [
            { title: 'Cómo usar JavaScript', content: 'Guía completa sobre el uso de JavaScript en el desarrollo web.' },
            { title: 'Introducción a HTML5', content: 'Fundamentos y novedades de HTML5.' },
            { title: 'CSS para Principiantes', content: 'Cómo empezar a usar CSS para diseñar páginas web.' },
        ];

        const articlesContainer = document.getElementById('articlesContainer');
        const template = document.getElementById('articleTemplate').content;

        articles.forEach(article => {
            const clone = document.importNode(template, true);
            clone.querySelector('.article-title').textContent = article.title;
            clone.querySelector('.article-content').textContent = article.content;

            articlesContainer.appendChild(clone);
        });
    </script>
</body>
</html>

En este ejemplo:

  • Se define un template para un artículo.
  • Usando JavaScript, clonamos el template para cada artículo y actualizamos el contenido antes de insertarlo en el contenedor de artículos.

Estos ejemplos ilustran cómo el elemento <template> puede ser una herramienta poderosa para la generación dinámica y reutilización de contenido en una aplicación web.




Colaboraciónes de nuestros usuarios

¿Tienes algo que agregar? ¡Déjanos tu colaboración!