Tabla de Contenidos

01 - HTML

HTML (*HyperText Markup Language*) describe la estructura de una página web mediante etiquetas. El navegador la interpreta y la presenta; CSS aporta el aspecto y JavaScript (o TypeScript) el comportamiento.

1. Estructura de un documento

<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Catálogo de libros</title>
  </head>
  <body>
    <h1>Catálogo</h1>
  </body>
</html>

2. Etiquetas semánticas

Las etiquetas describen el significado del contenido, no su aspecto:

<body>
  <header>
    <nav>...</nav>
  </header>
  <main>
    <section>
      <h2>Novedades</h2>
      <p>Los últimos títulos incorporados.</p>
    </section>
    <article>...</article>
  </main>
  <footer>...</footer>
</body>

Etiqueta Uso
header, footer Cabecera y pie de la página o sección
nav Bloque de navegación
main Contenido principal (solo uno)
section, article Agrupaciones temáticas
aside Contenido complementario

3. Texto, listas y enlaces

<h2>Novedades</h2>
<p>Los últimos <strong>títulos</strong> incorporados.</p>

<ul>
  <li>Novela</li>
  <li>Ensayo</li>
</ul>

<a href="/books/42">Ver el libro</a>
<img src="cover.png" alt="Portada del libro">

4. Formularios

Los formularios recogen datos del usuario y los envían al servidor:

<form action="/login" method="post">
  <label for="email">Correo</label>
  <input id="email" name="email" type="email" required>

  <label for="password">Contraseña</label>
  <input id="password" name="password" type="password" minlength="12" required>

  <button type="submit">Iniciar sesión</button>
</form>

Atributo Función
name Nombre del campo; es la clave con la que llega al servidor
type Tipo de dato: text, email, password, number, date
required, minlength Validación básica del navegador
label con for Etiqueta asociada al campo (accesibilidad)

5. Datos y tablas

<table>
  <thead>
    <tr><th>Título</th><th>Autor</th></tr>
  </thead>
  <tbody>
    <tr><td>Código limpio</td><td>Robert C. Martin</td></tr>
  </tbody>
</table>

El HTML expone la estructura y el significado, no el estilo. Los identificadores y clases que pongas aquí (por ejemplo id=“email”) son los que usará CSS para el aspecto y Playwright para las pruebas E2E.