Skip to content

Cheat Sheet de HTML

Última verificación mayo 2026 — corre en tu navegador
Cheatsheet de HTML
<!DOCTYPE html>

Declaración de tipo de documento HTML5

Estructura
<html lang="en">

Elemento raíz con idioma

Estructura
<head>

Contenedor de metadatos del documento

Estructura
<body>

Cuerpo del documento (contenido visible)

Estructura
<div>

Contenedor genérico de bloque

Estructura
<span>

Contenedor genérico en línea

Estructura
<link rel="stylesheet" href="style.css">

Enlazar hoja de estilos externa

Estructura
<script src="app.js" defer></script>

Enlazar script externo (diferido)

Estructura
<template>

Plantilla HTML reutilizable (no renderizada)

Estructura
<h1> to <h6>

Niveles de encabezado 1 (mayor) a 6

Texto
<p>

Párrafo

Texto
<a href="url">

Hipervínculo

Texto
<a href="url" target="_blank" rel="noopener">

Enlace que abre en nueva pestaña (seguro)

Texto
<strong> / <b>

Negrita / importancia fuerte

Texto
<em> / <i>

Cursiva / énfasis

Texto
<br>

Salto de línea

Texto
<hr>

Línea horizontal / separador temático

Texto
<ul> <li>Item</li> </ul>

Lista desordenada

Texto
<ol> <li>Item</li> </ol>

Lista ordenada

Texto
<blockquote>

Cita en bloque

Texto
<code> / <pre>

Código en línea / texto preformateado

Texto
<mark>

Texto resaltado

Texto
<abbr title="Full Text">FT</abbr>

Abreviatura con tooltip

Texto
<form action="/submit" method="POST">

Elemento de formulario

Formularios
<input type="text" name="q" placeholder="Search">

Campo de texto

Formularios
<input type="email" required>

Campo de email con validación

Formularios
<input type="password">

Campo de contraseña (enmascarado)

Formularios
<input type="number" min="0" max="100" step="1">

Campo numérico con rango

Formularios
<input type="checkbox" checked>

Campo de casilla de verificación

Formularios
<input type="radio" name="group" value="a">

Botón de radio (agrupado por nombre)

Formularios
<input type="file" accept="image/*" multiple>

Subida de archivos (imágenes, múltiple)

Formularios
<input type="range" min="0" max="100">

Control deslizante

Formularios
<input type="date">

Selector de fecha

Formularios
<input type="color">

Selector de color

Formularios
<textarea rows="4" cols="50"></textarea>

Campo de texto multilínea

Formularios
<select> <option value="a">A</option> </select>

Menú desplegable

Formularios
<label for="email">Email</label>

Etiqueta vinculada al campo por id

Formularios
<button type="submit">Send</button>

Botón de enviar

Formularios
<fieldset> <legend>Title</legend> </fieldset>

Agrupar elementos de formulario

Formularios
<datalist id="opts"> <option value="A"> </datalist>

Sugerencias de autocompletado

Formularios
<img src="img.jpg" alt="Description" loading="lazy">

Imagen con carga diferida

Medios
<picture> <source srcset="img.webp" type="image/webp"> <img src="img.jpg" alt=""> </picture>

Imagen responsiva con formatos

Medios
<video src="vid.mp4" controls autoplay muted></video>

Vídeo con controles

Medios
<audio src="audio.mp3" controls></audio>

Reproductor de audio

Medios
<iframe src="url" title="Embed"></iframe>

Marco embebido (vídeo, mapas)

Medios
<canvas id="c" width="300" height="150"></canvas>

Superficie de dibujo para JS

Medios
<svg viewBox="0 0 100 100">

Contenedor de gráficos vectoriales escalables

Medios
<table> <thead> <tr><th>Name</th></tr> </thead> <tbody> <tr><td>John</td></tr> </tbody> </table>

Estructura completa de tabla

Tablas
<th colspan="2">

Encabezado que abarca 2 columnas

Tablas
<td rowspan="3">

Celda que abarca 3 filas

Tablas
<caption>Table Title</caption>

Título de tabla (accesibilidad)

Tablas
<header>

Encabezado de página o sección

Semántico
<nav>

Enlaces de navegación

Semántico
<main>

Contenido principal (uno por página)

Semántico
<article>

Contenido independiente

Semántico
<section>

Agrupación temática de contenido

Semántico
<aside>

Barra lateral / contenido tangencial

Semántico
<footer>

Pie de página o sección

Semántico
<figure> <img src="" alt=""> <figcaption>Caption</figcaption> </figure>

Figura con leyenda

Semántico
<details> <summary>Click to expand</summary> Hidden content </details>

Detalles desplegables

Semántico
<dialog open>Modal content</dialog>

Diálogo / elemento modal

Semántico
<time datetime="2025-01-15">Jan 15</time>

Fecha/hora legible por máquina

Semántico
<meta charset="UTF-8">

Codificación de caracteres

Meta
<meta name="viewport" content="width=device-width, initial-scale=1.0">

Viewport responsivo

Meta
<meta name="description" content="Page description">

Descripción SEO

Meta
<meta property="og:title" content="Title">

Título Open Graph (redes sociales)

Meta
<meta name="robots" content="index, follow">

Directivas para motores de búsqueda

Meta
<link rel="icon" href="favicon.ico">

Favicon

Meta
<link rel="canonical" href="url">

URL canónica (evitar duplicados)

Meta
<title>Page Title</title>

Título del documento (mostrado en pestaña)

Meta
Mostrando 70 de 70 elementos

Cheat Sheet de HTML — Etiquetas, Formularios, Elementos Semánticos y Atributos

HTML lleva siendo el marcado de la web desde que Tim Berners-Lee publicó el primer borrador en 1991, y aunque ha pasado de una docena de etiquetas a varios cientos, la mayoría de las páginas se apoya todavía en un núcleo pequeño: estructura, texto, enlaces, formularios, multimedia, tablas y una capa fina de semántica encima. La chuleta de abajo cubre más de 65 de esas etiquetas agrupadas por función. La mayoría de los líos en marcado real no vienen de olvidar una etiqueta. Vienen de rarezas que parecen normales pero muerden. Un `<button>` dentro de un `<form>` sin atributo `type` explícito asume `type="submit"` y envía el formulario al primer Enter. El elemento `<html>` no trae el atributo `lang` por defecto, lo que rompe en silencio lectores de pantalla y traductores. Una `<img>` sin valor `alt` resulta invisible para quien usa lector de pantalla u otra tecnología de apoyo. Estos son los fragmentos que se acaban consultando al depurar precisamente eso: el atributo de formulario que controla el envío, el meta que arregla el zoom móvil, el elemento semántico que reemplaza un `<div>` vacío de significado.

Trampas habituales en HTML

Hay un puñado de patrones que merecen estar en la primera pantalla de cualquier documento HTML. `<meta charset="UTF-8">` y el meta viewport van dentro del `<head>` antes de que renderice nada, porque un navegador que adivine mal la codificación destrozará tildes y emojis de un modo que parece pérdida de datos y es puro marcado. La etiqueta `<label for="id">` emparejada con un input es la única línea que vuelve usable un formulario con lector de pantalla o táctil en móvil; las etiquetas no son decoración. El atributo `rel="noopener"` en cada enlace `target="_blank"` impide que la página abierta acceda a la ventana original, un valor seguro que la especificación tardó años en adoptar. Y `<main>`, `<article>`, `<nav>`, `<header>`, `<footer>` aportan significado real al buscador y al árbol de accesibilidad, cosa que un `<div>` no hace. La chuleta agrupa todo esto en estructura, texto, formularios, multimedia, tablas, marcas semánticas y meta, así la sección correcta queda a un clic.

  • Más de 65 etiquetas y elementos HTML
  • 7 categorías desde estructura hasta meta
  • Todos los tipos de campos de formulario
  • Elementos semánticos de HTML5
  • Copia al portapapeles con un clic
  • Buenas prácticas de accesibilidad

Gratis. Sin registro. Tus datos permanecen en tu navegador. Anuncios mediante Google AdSense (con consentimiento).

Por ·