CodeForge

Maquetación Web Dinámica / Pseudo-clases y pseudo-elementos: el arsenal secreto

Estructurales: :nth-child y las fórmulas an+b

Teoría18 min20 XP

Seleccionar "el primero", "el último", "los pares", "cada tercero" — sin agregar una sola clase al HTML. Las pseudo-clases estructurales seleccionan por POSICIÓN, y su corazón es la mini-matemática an+b que hoy dejarás de copiar sin entender.

Los básicos de posición

basicos.css

Ojo al matiz que atrapa a todos: :first-child significa "soy el primer hijo DE MI PADRE", no "el primero de mi tipo". Si un h2 precede a tus li... nada de nada. Para "el primero de mi tipo" existe :first-of-type — mismo juego, contando solo elementos de tu etiqueta.

:nth-child(an+b): la fórmula descifrada

:nth-child() acepta una fórmula donde n cuenta 0, 1, 2, 3...:

FórmulaGeneraSelecciona
2n (o even)2, 4, 6...los pares — el cebrado clásico
2n+1 (o odd)1, 3, 5...los impares
3n3, 6, 9...cada tercero
3n+11, 4, 7...cada tercero, empezando por el 1°
n+44, 5, 6...del cuarto en adelante
-n+33, 2, 1SOLO los tres primeros

El refinamiento moderno: of selector

:nth-child cuenta TODOS los hijos — incluidos los que no te interesan. La sintaxis moderna cuenta solo lo que tú digas:

of-selector.css

Sin el of, filtrar una fila rompía el cebrado (dos grises seguidos). Con él, la cuenta se hace sobre el subconjunto. Soporte: navegadores modernos desde 2023.

Quieres destacar SOLO las 3 primeras noticias de una lista. ¿La fórmula?

Mini-reto

En tu periódico: cebra la tabla del clima con nth-child(even), quita el borde del último ítem de "Lo más leído" con :last-child, y dale peso extra a los 3 primeros del ranking con -n+3. Tres patrones de posición, cero clases nuevas.

Qué sigue

Seleccionas por posición. La próxima lección COMBINA selectores con elegancia: :not() para excluir, :is() para agrupar sin repetirte y :where() — el que tiene especificidad cero, y eso es un superpoder.