Combinadores CSS
Ya dominas los selectores de tipo, class e id. Queda una habilidad clave: a veces no quieres «todos los párrafos», sino solo los que están dentro de una sección, solo el hijo directo de una lista, o lo que viene justo después del título. Eso lo hace el combinador.
¿Qué significa combinador?
Un combinador es un símbolo — o incluso solo un espacio — entre dos selectores. Le dice al navegador qué relación deben tener esas dos partes en el árbol HTML. La izquierda suele ser la «referencia»; la derecha es lo que realmente recibe color y tipografía.
Cuatro combinadores habituales
Primero memoriza los símbolos; después siente cada uno con un ejemplo corto.
📊 Combinadores CSS
| Nombre | Símbolo | Significado sencillo | Ejemplo |
|---|---|---|---|
| Descendiente | espacio | En cualquier profundidad dentro del ancestro | article p |
| Hijo directo | > |
Solo un nivel más abajo | ul > li |
| Hermano adyacente | + |
El vecino pegado siguiente | h2 + p |
| Hermano general | ~ |
Cualquier hermano posterior en el mismo nivel | h2 ~ p |
Descendiente — espacio entre dos selectores
Si escribes article p significa: cada <p> que esté en algún lugar dentro de <article>, por muy anidado que esté. Nietos y bisnietos también cuentan.
Descendiente — párrafos dentro de article
cssarticle p {
color: #334155;
line-height: 1.6;
}
¿Cuándo conviene el descendiente?
Cuando quieres un aspecto común para «todo el texto de esta zona»: párrafos de un artículo, enlaces de un menú. Si hay mucha anidación y el estilo se desborda sin querer, pasa a >.
Hijo directo — >
Con > tomas solo un nivel más abajo. Lo que está dos niveles más profundo no pasa esta regla.
Hijo directo — solo ítems de primer nivel de la lista
css.menu > li {
list-style: none;
padding: 0.5rem 1rem;
}
Un ejemplo mental
Imagina un menú con un <li> exterior y, dentro, una lista anidada. Con .menu > li solo se estilan los exteriores. Si escribes .menu li (con espacio), también se colorean los anidados — a veces es lo que quieres, a veces un desastre.
Hermano adyacente — +
+ significa: el elemento que viene exactamente pegado después de la referencia, bajo el mismo padre, sin nada en medio.
Hermano adyacente — primer párrafo después del título
cssh2 + p {
font-size: 1.125rem;
color: #0f766e;
}
Un patrón habitual
Muchas páginas quieren la primera frase tras el título un poco más destacada. Con h2 + p atrapas ese vecino; no hace falta pegar una class a cada párrafo.
Hermano general — ~
~ también pide hermanos, pero no solo el vecino pegado: cualquier hermano posterior que encaje con el segundo selector.
Hermano general — párrafos después del título
cssh2 ~ p {
max-width: 40rem;
}
Diferencia entre + y ~ en una frase
h2 + p→ solo el párrafo pegado después deh2h2 ~ p→ cadaphermano que venga después de eseh2
Si entre el título y el párrafo se sienta undiv,+no sirve para ese párrafo;~aún puede alcanzar párrafos hermanos posteriores.
¿Cuál elegir?
- Todos los elementos de este tipo dentro de una zona → descendiente (espacio)
- La anidación provoca estilos de más → hijo directo (
>) - Solo el vecino de un paso (título → primer párrafo) →
+ - Varios hermanos tras una marca, aspecto compartido →
~
Mantén la cadena corta. Un selector muy largo se rompe pronto al cambiar el HTML.
Pruébalo tú
- Crea un
<article>con<h2>, un<p>, un<div>con un<p>dentro, y luego otro<p>después deldiv. - Pon la regla
article p { color: #334155; }— deben colorearse ambos párrafos del article. - Cámbiala a
article > p { color: #0f766e; }— solo hijos directos; no elpdentro deldiv. - Añade
h2 + p { font-weight: bold; }— solo el párrafo pegado al título se pone en negrita. - Si quieres: prueba
h2 ~ p { max-width: 36rem; }— todos los párrafos hermanos tras el título.
Errores frecuentes
- Usar descendiente donde querías hijo directo — el widget anidado también hereda el estilo
- Creer que
h2 + p«salta» un elemento intermedio — no salta; adyacente significa pegado - Leer el combinador al revés — el estilo llega al lado derecho
- Poner una coma en vez de combinador (
h2, pes «título y párrafo», no «párrafo después del título») - Confundir
~con «vecino pegado» —~significa más adelante en el mismo nivel, no necesariamente la puerta de al lado
Resumen
- El combinador fija la relación de dos selectores en el HTML
- Espacio = descendiente (cualquier profundidad);
>= solo hijo directo += hermano pegado;~= cualquier hermano posterior- El estilo llega al selector de la derecha
- Elige el símbolo más estrecho que aún diga lo que quieres
- En una página pequeña cambia el espacio por
>y+por~y mira el resultado
🧠 Pon a Prueba tu Conocimiento
Pon a Prueba tu Conocimiento
Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema
📝 Instrucciones
- Lee cada pregunta cuidadosamente
- Selecciona la mejor respuesta para cada pregunta
- Puedes repetir el quiz tantas veces como quieras
- Tu progreso se mostrará en la parte superior