Atributos globales en HTML: id, class, title, hidden y data-*

Aprende a usar atributos globales con criterio profesional para estructurar mejor tu HTML, conectar CSS/JS y evitar anti-patrones.

Los atributos globales funcionan en la mayoría de etiquetas HTML y son básicos en cualquier proyecto real.

id identifica nodos únicos; class agrupa estilos y comportamientos reutilizables.

data-* permite guardar metadatos de negocio sin romper semántica.

title y hidden tienen usos puntuales: ayudan, pero no sustituyen buen contenido ni accesibilidad.

  • No son detalle técnico: son el pegamento entre HTML, CSS, JS y testing. 🔧
  • Cuando una base HTML escala, necesitas convenciones. Los atributos globales te ayudan a localizar elementos, aplicar estilos coherentes y vincular lógica sin convertir el marcado en un caos.
  • La clave es usar cada atributo para su propósito: si mezclas responsabilidades, acabas con código frágil y difícil de mantener.
  • Regla práctica de profe: `id` para uno, `class` para muchos. ✅
  • `id` debe ser único dentro del documento. Es perfecto para enlaces internos (`#contacto`) o elementos singulares.

Por qué importan los atributos globales

No son detalle técnico: son el pegamento entre HTML, CSS, JS y testing. 🔧

Cuando una base HTML escala, necesitas convenciones. Los atributos globales te ayudan a localizar elementos, aplicar estilos coherentes y vincular lógica sin convertir el marcado en un caos.

La clave es usar cada atributo para su propósito: si mezclas responsabilidades, acabas con código frágil y difícil de mantener.

id vs class sin confusiones

Regla práctica de profe: `id` para uno, `class` para muchos. ✅

`id` debe ser único dentro del documento. Es perfecto para enlaces internos (`#contacto`) o elementos singulares.

`class` se repite y es ideal para componentes: botones, cards, alerts, bloques de layout. En CSS moderno, class suele ser tu herramienta principal.

  • No reutilices un mismo id en dos nodos.
  • No uses id por defecto para estilado masivo.
  • Prefiere class con nombres claros: `card-curso`, `btn-secundario`.

Uso sensato de title y hidden

Útiles, pero con contexto. No son comodines. 🎯

`title` puede aportar ayuda contextual breve, pero no debe contener información crítica porque no todos los usuarios la perciben igual.

`hidden` oculta un elemento visual y semánticamente del flujo normal. Úsalo para estados de UI controlados, no como parche de diseño.

data-* en proyectos reales

Tu mejor aliado para pasar contexto al JS sin acoplarte a clases visuales.

Con `data-*` puedes indicar estado, tipo o categoría sin depender de texto visible ni de clases de estilo.

Esto mejora tests y evita que un cambio de diseño rompa lógica de interacción.

  • Usa nombres explícitos: `data-course-id`, `data-role`, `data-state`.
  • Evita guardar JSON gigante en atributos.
  • Mantén los datos cerca del elemento que los usa.
HTML
08

Atributos globales en HTML: id, class, title, hidden y data-*

Aprende a usar atributos globales con criterio profesional para estructurar mejor tu HTML, conectar CSS/JS y evitar anti-patrones.

Código del tema: id | class | title | hidden | data-*

📘 Teoría

Por qué importan los atributos globales

No son detalle técnico: son el pegamento entre HTML, CSS, JS y testing. 🔧

Cuando una base HTML escala, necesitas convenciones. Los atributos globales te ayudan a localizar elementos, aplicar estilos coherentes y vincular lógica sin convertir el marcado en un caos.

La clave es usar cada atributo para su propósito: si mezclas responsabilidades, acabas con código frágil y difícil de mantener.

1

id

Identificador único para anclas o referencias puntuales.

2

class

Agrupación reusable para estilos y comportamiento.

3

data-*

Metadatos de dominio (estado, tipo, variante, etc.).

id vs class sin confusiones

Regla práctica de profe: `id` para uno, `class` para muchos. ✅

`id` debe ser único dentro del documento. Es perfecto para enlaces internos (`#contacto`) o elementos singulares.

`class` se repite y es ideal para componentes: botones, cards, alerts, bloques de layout. En CSS moderno, class suele ser tu herramienta principal.

  • No reutilices un mismo id en dos nodos.
  • No uses id por defecto para estilado masivo.
  • Prefiere class con nombres claros: `card-curso`, `btn-secundario`.
Ejemplo correcto
<nav id="menu-principal" class="nav nav--sticky">
  <a class="nav-link" href="#temario">Temario</a>
  <a class="nav-link" href="#faq">FAQ</a>
</nav>

<section id="temario" class="bloque bloque--destacado">
  <h2>Temario del curso</h2>
</section>

Uso sensato de title y hidden

Útiles, pero con contexto. No son comodines. 🎯

1

`title` puede aportar ayuda contextual breve, pero no debe contener información crítica porque no todos los usuarios la perciben igual.

2

`hidden` oculta un elemento visual y semánticamente del flujo normal. Úsalo para estados de UI controlados, no como parche de diseño.

data-* en proyectos reales

Tu mejor aliado para pasar contexto al JS sin acoplarte a clases visuales.

Con `data-*` puedes indicar estado, tipo o categoría sin depender de texto visible ni de clases de estilo.

Esto mejora tests y evita que un cambio de diseño rompa lógica de interacción.

  • Usa nombres explícitos: `data-course-id`, `data-role`, `data-state`.
  • Evita guardar JSON gigante en atributos.
  • Mantén los datos cerca del elemento que los usa.
Patrón limpio con data-*
<article class="card-curso" data-course-id="html-01" data-level="basico" data-state="abierto">
  <h3>HTML desde cero</h3>
  <button type="button" data-action="inscribirse">Inscribirme</button>
</article>

🧪 Aprende probando

Ejemplo Ejemplo guiado: bloque de curso reutilizable Mira cómo combinar `id`, `class` y `data-*` en un componente simple y mantenible.

🏁 Retos

Reto Reto: corrige id y class Haz que el código respete unicidad de id y reutilización con class.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre HTML.

Test de HTML

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .