Es el contenedor principal de toda la página. Todo el código HTML va dentro de esta etiqueta.
<html lang="es"> ...todo el contenido... </html>
Esta página completa está dentro de un <html> 😉
Tu manual de supervivencia oficial – 80 conceptos esenciales
Es el contenedor principal de toda la página. Todo el código HTML va dentro de esta etiqueta.
<html lang="es"> ...todo el contenido... </html>
Esta página completa está dentro de un <html> 😉
Contiene metadatos e información invisible para el navegador (título, estilos, scripts, etc.).
<head> <title>Mi Página</title> <meta charset="UTF-8"> </head>
El título de esta pestaña y los estilos vienen del <head>.
Aquí va todo el contenido visible de la página: textos, imágenes, botones, etc.
<body> <h1>Hola mundo</h1> <p>Esto se ve en la página</p> </body>
Todo lo que estás viendo ahora está dentro del <body>.
Define el título que aparece en la pestaña del navegador.
<title>Ayuda Memoria Web</title>
Mirá el título de esta pestaña → "Ayuda Memoria Web Interactivo"
Configura caracteres (UTF-8) y cómo se ve la página en celulares.
<meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
Gracias a esto la página se adapta bien al celular 📱
Sirve para vincular archivos CSS externos a la página.
<link rel="stylesheet" href="estilos.css">
En este proyecto los estilos están dentro del HTML, pero normalmente se usan con <link>.
Permite insertar código JavaScript en la página.
<script>
alert("¡Hola!");
</script>
Son los encabezados. <h1> es el más importante y <h6> el menos.
<h1>Título principal</h1> <h2>Subtítulo</h2> <h3>Sección</h3>
Crea un párrafo de texto. Cada <p> empieza en una nueva línea.
<p>Este es un párrafo de ejemplo.</p>
Este es un párrafo real usando la etiqueta <p>.
Crea enlaces. El atributo href indica a dónde lleva el link.
<a href="https://google.com" target="_blank">Ir a Google</a>
Muestra una imagen. El atributo src indica la ruta o URL de la imagen.
<img src="foto.jpg" alt="Descripción" width="150">
Contenedor genérico en bloque. Se usa para agrupar elementos y aplicar estilos.
<div style="background:#dbeafe; padding:10px;"> Contenido agrupado </div>
Contenedor en línea. Ideal para aplicar estilos a una parte del texto sin saltar de línea.
Texto normal y <span style="color:red">texto rojo</span>
Crea una lista desordenada (con viñetas).
<ul> <li>Manzana</li> <li>Banana</li> </ul>
Crea una lista ordenada (con números).
<ol> <li>Primero</li> <li>Segundo</li> </ol>
Representa cada elemento dentro de una lista (<ul> o <ol>).
<ul> <li>Elemento 1</li> <li>Elemento 2</li> </ul>
Define la cabecera de la página o de una sección (logo, título, menú, etc.).
<header> <h1>Mi Sitio</h1> </header>
Contiene el menú de navegación de la página.
<nav> <a href="#inicio">Inicio</a> <a href="#contacto">Contacto</a> </nav>
El menú de arriba de esta página es un <nav> 👆
Contiene el contenido principal de la página (lo más importante).
<main> <h2>Contenido principal</h2> <p>...</p> </main>
Todo este bloque de tarjetas está dentro de un <main>.
Pie de página. Suele contener copyright, enlaces o información de contacto.
<footer> © 2026 - Mi sitio </footer>
Agrupa contenido temático relacionado. Es una sección de la página.
<section> <h2>Sobre mí</h2> <p>Texto de la sección...</p> </section>
Representa contenido independiente y completo (como una tarjeta o una noticia).
<article> <h3>Título del artículo</h3> <p>Contenido...</p> </article>
¡Cada una de estas tarjetas es un <article>!
Crea una tabla de datos con filas y columnas.
<table border="1"> <tr><td>Celda 1</td><td>Celda 2</td></tr> </table>
| Celda 1 | Celda 2 |
| Celda 3 | Celda 4 |
Define una fila dentro de una tabla.
<tr> <td>Dato A</td> <td>Dato B</td> </tr>
Cada fila de la tabla de arriba es un <tr>.
Representa una celda de datos dentro de una fila de tabla.
<td>Contenido de la celda</td>
Las celdas de la tabla de ejemplo son <td>.
Contenedor de un formulario. Agrupa campos de entrada y botones.
<form> <input type="text"> <button>Enviar</button> </form>
Campo de entrada. Puede ser texto, número, email, checkbox, etc.
<input type="text" placeholder="Nombre"> <input type="checkbox"> Acepto
Crea un botón interactivo que el usuario puede clickear.
<button onclick="alert('¡Click!')">Haz clic</button>
Etiqueta de un campo de formulario. Mejora la accesibilidad y permite clickear el texto.
<label for="nombre">Nombre:</label> <input id="nombre" type="text">
Campo de texto multilínea. Ideal para comentarios o mensajes largos.
<textarea rows="3" cols="30"> Escribe aquí... </textarea>
Cambia el color del texto.
p {
color: #e11d48;
}
Este texto es rojo rosado
Define el color de fondo de un elemento.
div {
background-color: #fef3c7;
}
Controla el tamaño de la letra.
h1 {
font-size: 2rem;
}
Pequeño
Normal
Grande
Elige el tipo de tipografía (fuente) del texto.
body {
font-family: Arial, sans-serif;
}
Fuente Georgia (serif)
Fuente Arial (sans-serif)
Controla el grosor de la letra (normal, bold, 400, 700, etc.).
strong {
font-weight: bold;
}
Light (300)
Normal (400)
Bold (700)
Alinea el texto: left, center, right o justify.
p {
text-align: center;
}
← Izquierda
Centro
Derecha →
Espaciado exterior (fuera del borde del elemento).
div {
margin: 20px;
}
Espaciado interior (dentro del borde, alrededor del contenido).
div {
padding: 16px;
}
Define el ancho de un elemento.
div {
width: 200px;
}
Define la altura de un elemento.
div {
height: 80px;
}
Establece el ancho máximo. El elemento no crecerá más allá de ese valor.
img {
max-width: 100%;
}
Agrega un borde alrededor del elemento (grosor, estilo y color).
div {
border: 2px solid #3b82f6;
}
Redondea las esquinas del elemento.
div {
border-radius: 12px;
}
Agrega una sombra exterior al elemento.
div {
box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
Controla cómo se muestra el elemento (block, inline, flex, grid, none...).
div {
display: flex;
}
Define la dirección de los elementos en un contenedor flex (row o column).
.contenedor {
display: flex;
flex-direction: column;
}
Alinea los elementos horizontalmente en un contenedor flex.
.contenedor {
display: flex;
justify-content: center;
}
Alinea los elementos verticalmente en un contenedor flex.
.contenedor {
display: flex;
align-items: center;
}
Define el espacio entre elementos en flex o grid.
.contenedor {
display: flex;
gap: 16px;
}
Define las columnas de un contenedor grid.
.contenedor {
display: grid;
grid-template-columns: 1fr 1fr;
}
Controla el tipo de posicionamiento: relative, absolute, fixed, sticky...
div {
position: relative;
}
Definen las coordenadas cuando se usa position.
div {
position: absolute;
top: 10px;
right: 10px;
}
El cuadrito azul de arriba está posicionado con top y right.
Controla qué elemento queda encima de otro (profundidad de capas).
.arriba {
z-index: 10;
}
Controla la transparencia de un elemento (0 = invisible, 1 = opaco).
div {
opacity: 0.5;
}
Cambia la forma del puntero del mouse al pasar sobre el elemento.
button {
cursor: pointer;
}
Crea animaciones suaves cuando cambia una propiedad.
button {
transition: background 0.3s ease;
}
Controla qué pasa cuando el contenido se desborda (hidden, scroll, auto...).
div {
overflow: hidden;
}
Define cómo se calcula el ancho y alto total (si incluye padding y border).
* {
box-sizing: border-box;
}
Con border-box el padding no agranda el elemento. ¡Muy útil!
Controla el interlineado (espacio entre líneas de texto).
p {
line-height: 1.6;
}
Interlineado chico (1.2)
Interlineado grande (1.8)
Agrega decoraciones al texto: subrayado, tachado, etc.
a {
text-decoration: none;
}
Subrayado · Tachado · Sin decoración
Sirven para declarar variables. let se puede cambiar, const no.
let nombre = "Ana"; const edad = 25; nombre = "Luis"; // ok // edad = 30; → error
Selecciona un elemento del HTML usando su id.
const titulo = document.getElementById("miTitulo");
titulo.textContent = "Nuevo texto";
Texto original
Selecciona el primer elemento que coincida con un selector CSS (clase, etiqueta, etc.).
const boton = document.querySelector(".mi-boton");
const parrafo = document.querySelector("p");
Texto de prueba
Escucha eventos (clic, teclado, etc.) y ejecuta una función cuando ocurren.
boton.addEventListener("click", function() {
alert("¡Clic!");
});
Cambia o lee el texto plano de un elemento (sin HTML).
elemento.textContent = "Nuevo texto";
Texto viejo
Permite insertar o leer HTML completo dentro de un elemento.
elemento.innerHTML = "<strong>Negrita</strong>";
Permite cambiar estilos CSS directamente desde JavaScript.
elemento.style.color = "red"; elemento.style.fontSize = "20px";
Texto normal
Agrega una clase CSS a un elemento.
elemento.classList.add("activo");
Sin clase especial
Quita una clase CSS de un elemento.
elemento.classList.remove("activo");
Con fondo amarillo
Alterna una clase: la agrega si no está, o la quita si ya está.
elemento.classList.toggle("oscuro");
Click para alternar
Crea una función reutilizable que ejecuta un bloque de código.
function saludar(nombre) {
return "Hola " + nombre;
}
saludar("Ana"); // "Hola Ana"
Permite ejecutar código según una condición (si se cumple o no).
if (edad >= 18) {
console.log("Mayor de edad");
} else {
console.log("Menor de edad");
}
Obtiene o cambia el valor escrito en un input o textarea.
const texto = input.value; input.value = "Nuevo valor";
Evita el comportamiento por defecto de un evento (por ejemplo, que el formulario recargue la página).
form.addEventListener("submit", function(e) {
e.preventDefault();
// código...
});
Convierten texto a número para poder hacer operaciones matemáticas.
const num = parseInt("42");
const decimal = Number("3.14");
Recorre cada elemento de un arreglo y ejecuta una función.
const frutas = ["manzana", "banana"];
frutas.forEach(function(fruta) {
console.log(fruta);
});
Agrega uno o más elementos al final de un arreglo.
const lista = ["a", "b"];
lista.push("c");
// lista → ["a", "b", "c"]
Lista: []
Guarda datos en el navegador que persisten aunque se cierre la pestaña.
localStorage.setItem("nombre", "Ana");
Lee un dato que fue guardado anteriormente con setItem.
const nombre = localStorage.getItem("nombre");
Ejecuta una función después de cierto tiempo (en milisegundos).
setTimeout(function() {
alert("Pasaron 2 segundos");
}, 2000);