Cómo funciona CSS
💡 🎯 Al terminar esta lección podrás…
- Explicar cómo el navegador combina HTML y CSS para pintar una página.
- Predecir qué regla gana usando la cascada.
- Distinguir qué propiedades se heredan y cuáles no.
- Usar las herramientas del navegador para entender por qué un estilo no se aplica.
1.Qué hace CSS y cómo lo lee el navegador
Cuando abres una página, el navegador hace tres cosas, en este orden:
- Lee el HTML y construye un árbol con todos los elementos (el DOM).
- Lee el CSS y construye una lista de reglas (el CSSOM).
- Combina ambos: para cada elemento decide qué reglas le tocan, calcula su aspecto final, lo coloca en la pantalla y lo pinta.
Ese cálculo se repite si cambias el tamaño de la ventana, pasas el cursor por encima o añades una clase con JavaScript. Por eso un mismo HTML puede verse completamente distinto con otro CSS.
Dos archivos, una página
qué es cada cosa
cómo se ve
lo que ves
📌 Nota · Qué sabes de antemano
Este curso continúa el curso de HTML. Si ya hiciste la lección 7 de HTML, esta primera lección te sonará, pero aquí vamos a fondo: entenderás por qué el navegador elige un estilo y no otro.
2.Anatomía de una regla
- El selector elige los elementos a los que se aplica la regla.
- Las declaraciones van entre llaves
{ }. Cada una es una parejapropiedad: valor;. - Un punto y coma cierra cada declaración. Olvidarlo rompe la siguiente.
- Los comentarios se escriben
/* así */y el navegador los ignora.
/* Títulos: color y tamaño */
h1 {
color: #4f46e5;
font-size: 2rem;
}
p { line-height: 1.7; }
⚠️ Importante · Si algo no se aplica
El navegador no avisa de los errores de CSS: simplemente ignora la declaración que no entiende. Una propiedad mal escrita (colour), un valor inválido (color: 10px) o un ; olvidado hacen que el estilo «no funcione» sin mensaje alguno. Aprenderás a detectarlo con las herramientas del navegador en la sección 7.
3.Tres formas de añadir CSS
| Forma | Ejemplo | Cuándo usarla |
|---|---|---|
| Archivo externo | <link rel="stylesheet" href="estilos.css"> | Siempre que puedas. Un archivo sirve a todas las páginas, se guarda en caché y mantiene el HTML limpio |
Etiqueta <style> | <style> p { color: red } </style> | Pruebas, ejemplos y estilos críticos de una sola página |
Atributo style | <p style="color: red"> | Valores que cambian con JavaScript. Evítalo en el resto: no se puede reutilizar y tiene una prioridad muy alta |
<head>
<meta charset="UTF-8">
<title>Mi página</title>
<link rel="stylesheet" href="css/estilos.css">
</head>
💡 Consejo · Varios archivos
Puedes enlazar varios archivos. Se aplican en el orden en que aparecen, y un archivo posterior puede cambiar lo que dijo uno anterior. Este mismo curso usa uno solo, assets/estilos.css.
4.La cascada: quién gana
Imagina que dos reglas piden cosas distintas para el mismo elemento:
h1 { color: blue; }
h1 { color: red; }
CSS significa Cascading Style Sheets («hojas de estilo en cascada») porque tiene reglas para resolver estos conflictos. El navegador revisa tres criterios, en este orden:
- Importancia y origen. Las declaraciones con
!importantganan a las normales (y los estilos del navegador son los más débiles). - Especificidad. Un selector más específico (
#portada,.aviso) gana a uno más general (p). La estudiarás a fondo en la próxima lección. - Orden. Si todo lo anterior empata, gana la declaración que aparece después.
En el ejemplo, empatan en importancia y especificidad, así que gana la última: el título será rojo.
Predice el resultado antes de mirar. Después prueba mover las reglas de lugar y observa qué cambia (y qué no cambia).
⚠️ Importante · No uses !important como atajo
!important parece una solución rápida, pero obliga a usar más !important para superarlo, y el código se vuelve imposible de mantener. Reserva su uso para casos muy concretos.
5.Herencia
Algunas propiedades pasan de un elemento a sus hijos sin que lo pidas. Si pones color: navy en el <body>, todos los textos dentro (párrafos, listas, enlaces…) se verán azules salvo que otra regla diga lo contrario.
| Se heredan (texto) | No se heredan (caja) |
|---|---|
color, font-family, font-size, font-weight, line-height, text-align, letter-spacing, list-style, cursor | margin, padding, border, background, width, height, display, position |
La lógica: si el texto de un contenedor es azul, es natural que lo de dentro también; pero que un párrafo tenga el borde de su contenedor sería absurdo.
Controlar la herencia
| Valor | Qué hace |
|---|---|
inherit | Fuerza a heredar el valor del padre |
initial | Vuelve al valor inicial de CSS (no el del navegador) |
unset | inherit si la propiedad se hereda; initial si no |
revert | Vuelve al estilo por defecto del navegador |
💡 Consejo · Aprovecha la herencia
Define la tipografía y el color una sola vez en body y deja que todo lo herede. Así evitas repetir font-family en cada regla y, si mañana cambias de fuente, es una sola línea.
6.Los estilos por defecto del navegador
Aunque no escribas nada de CSS, la página no se ve «vacía»: los títulos son grandes, los párrafos tienen espacio, los enlaces son azules y subrayados. Es la hoja de estilos del navegador, y cada navegador tiene la suya con pequeñas diferencias.
Por eso muchas personas empiezan sus proyectos con un reseteo que elimina esas diferencias. Este es uno moderno y breve, suficiente para empezar:
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; line-height: 1.6; }
img, video, svg { max-width: 100%; height: auto; display: block; }
input, button, textarea, select { font: inherit; }
box-sizing: border-boxhace que el ancho incluya el relleno y el borde (lo verás en la lección 4).margin: 0en elbodyelimina el margen de 8 px del navegador.- Las imágenes nunca serán más anchas que su contenedor.
- Los campos de formulario heredan la tipografía de la página, en lugar de usar la suya.
7.Las herramientas del navegador: tu mejor aliada
Todos los navegadores modernos traen herramientas para ver y modificar el CSS de cualquier página. Se abren con F12 (o clic derecho → Inspeccionar). Estas son las partes que más usarás:
| Parte | Para qué sirve |
|---|---|
| Elementos | Ver el HTML y seleccionar un elemento con el icono del cursor |
| Estilos | Ver qué reglas se aplican, cuáles están tachadas (perdieron) y editar valores en vivo |
| Calculado (Computed) | El valor final de cada propiedad después de la cascada |
| Modelo de caja | Un dibujo con el margen, borde, relleno y contenido del elemento |
| Modo dispositivo | Probar la página en pantallas de celular y tableta (Ctrl + Shift + M) |
- Haz clic derecho sobre un título de esta misma página y elige Inspeccionar.
- En el panel Estilos, cambia el valor de
coloro desmarca una declaración con la casilla. - Observa cómo cambia la página al instante. Nada se guarda: al recargar vuelve todo como estaba.
🔍 Ejemplo · Un estilo que no se aplica
Si escribes una regla y no ves efecto, abre las herramientas, selecciona el elemento y busca tu regla. Si aparece tachada, otra regla con más prioridad la ganó. Si no aparece, el selector no coincide con el elemento. Si aparece con un triángulo amarillo, la propiedad o el valor es inválido.
8.Errores frecuentes
- Olvidar
;o}: el resto de reglas puede dejar de funcionar. - Escribir mal una propiedad o un valor (
colour,font-size: 16, sin unidad). - Usar
idpara todo y luego no poder sobrescribir los estilos. - Esperar que se herede lo que no se hereda (por ejemplo, un borde).
- Recargar sin guardar o con la caché del navegador (usa Ctrl + F5).
- La ruta del
<link>equivocada: si ningún estilo cambia, revisa elhrefy la pestaña Red de las herramientas. - Usar
!importanten lugar de entender la cascada.
📒 Apuntes para llevar
- CSS describe cómo se ve el HTML; el navegador combina el DOM y el CSSOM para pintar la página.
- Una regla es
selector { propiedad: valor; }. Los errores se ignoran sin avisar. - Lo recomendable es un archivo
.cssenlazado con<link rel="stylesheet">. - Conflictos: la cascada decide por importancia, especificidad y, al empatar, orden (gana lo último).
- La herencia pasa propiedades de texto (
color,font-*,line-height) a los hijos; las de caja no. inherit,initial,unsetyrevertcontrolan la herencia.- Un reseteo mínimo elimina diferencias entre navegadores:
box-sizing: border-boxymargin: 0enbody. - Con F12 inspeccionas, editas en vivo y descubres por qué un estilo no se aplica.
9.Glosario
| Término | Significado |
|---|---|
| DOM / CSSOM | Representaciones internas del HTML y del CSS que el navegador combina para pintar. |
| Selector | Parte de la regla que indica a qué elementos se aplica. |
| Declaración | Pareja propiedad: valor; dentro de las llaves. |
| Cascada | Sistema que decide qué regla gana cuando dos chocan. |
| Herencia | Paso automático de ciertas propiedades de un elemento a sus hijos. |
!important | Marca una declaración como prioritaria; úsala con mucha precaución. |
| Reseteo | Conjunto breve de reglas que unifica el punto de partida entre navegadores. |
| Computed (calculado) | El valor final de una propiedad, ya resuelta la cascada. |
🧠 Comprueba lo aprendido
Elige una respuesta en cada pregunta. Verás al instante si acertaste y por qué.
Dos reglas con el mismo selector dan colores distintos al mismo elemento. ¿Cuál gana?
Con igual importancia y especificidad, el orden decide: gana la última.
¿Cuál de estas propiedades se hereda por defecto?
color y las demás propiedades de texto se heredan; las de caja no.
Una propiedad en las herramientas aparece tachada. ¿Qué significa?
Una declaración tachada es válida pero perdió ante otra en la cascada.
¿Cuál es la forma recomendada de añadir CSS a un sitio con varias páginas?
Un archivo externo se escribe una vez, se guarda en caché y lo comparten todas las páginas.
Escribes colour: red;. ¿Qué hace el navegador?
Las propiedades desconocidas se descartan en silencio. Por eso conviene inspeccionar con las herramientas.
Tu progreso se guarda en este navegador y se refleja en el índice del curso.
💡 🚀 ¡Ahora te toca!
La práctica fija lo aprendido. Pasa al ejercicio de esta lección.