Un combinador es algo que explica la relación entre los selectores. Un selector CSS puede contener más de un selector simple. Entre los selectores simples, podemos incluir un combinador.
Exiten 4 diferentes combinadores en CSS:
- Selector de descendientes (espacio)
- Selector hijo (>)
- Selector de hermano adyacente (+)
- Selector general de hermanos (~)
Selector de descendientes
El selector de descendientes coincide con todos los elementos que son descendientes de un elemento especificado. El siguiente ejemplo selecciona todos los elementos <p> dentro de los elementos <div>:
div p { background-color: yellow; }
Selector hijo
El selector hijo selecciona todos los elementos que son los hijos de un elemento específico. El siguiente ejemplo selecciona todos los elementos <p> que son hijos de un elemento <div>.
Ejm
<!DOCTYPE html>
<html>
<head>
<style>
div > p {
background-color: yellow;
}
</style>
</head>
<body>
<h2>Child Selector</h2>
<p>
El selector hijo (>) selecciona todos los elementos que son hijos de un
elemento específico.
</p>
<div>
<p>Paragraph 1 in the div.</p>
<p>Paragraph 2 in the div.</p>
<section>
<!-- NO HIJO PERO SÍ DESCENDIENTE -->
<p>Paragraph 3 in the div (dentro de un elemento section).</p>
</section>
<p>Paragraph 4 in the div.</p>
</div>
<p>Paragraph 5. Not in a div.</p>
<p>Paragraph 6. Not in a div.</p>
</body>
</html>
Elemento hermano (+)
El selector de hermanos adyacente se usa para seleccionar un elemento que está directamente después de otro elemento específico. Los elementos hermanos deben tener el mismo elemento principal, y «adyacente» significa «inmediatamente después». El siguiente ejemplo selecciona el primer elemento <p> que se coloca inmediatamente después de los elementos <div>.
Ejm
<!DOCTYPE html>
<html>
<head>
<style>
div + p {
background-color: yellow;
}
</style>
</head>
<body>
<h2>Adjacent Sibling Selector</h2>
<p>
El selector + se utiliza para seleccionar un elemento que está
directamente después de otro elemento específico.
</p>
<p>
El siguiente ejemplo selecciona el primer elemento p que se coloca
inmediatamente después de los elementos div:
</p>
<div>
<p>Paragraph 1 in the div.</p>
<p>Paragraph 2 in the div.</p>
</div>
<p>Paragraph 3. After a div.</p>
<p>Paragraph 4. After a div.</p>
<div>
<p>Paragraph 5 in the div.</p>
<p>Paragraph 6 in the div.</p>
</div>
<p>Paragraph 7. After a div.</p>
<p>Paragraph 8. After a div.</p>
</body>
</html>
Selector general de hermanos (~)
El selector de hermanos general selecciona todos los elementos que son hermanos siguientes de un elemento específico. El siguiente ejemplo selecciona todos los elementos <p> que son los siguientes hermanos de los elementos <div>.
Ejm
<!DOCTYPE html>
<html>
<head>
<style>
div ~ p {
background-color: yellow;
}
</style>
</head>
<body>
<h2>General Sibling Selector</h2>
<p>
El selector general de hermanos (~) selecciona todos los elementos que son
los hermanos siguientes de un elemento especificado.
</p>
<p>Paragraph 1.</p>
<div>
<p>Paragraph 2.</p>
</div>
<p>Paragraph 3.</p>
<code>Some code.</code>
<p>Paragraph 4.</p>
</body>
</html>
Resumen
Selector | Ejemplo | Descripción del ejemplo |
---|---|---|
element element | div p | Selecciona todos los elementos <p> dentro de los elementos <div> |
element > element | div > p | Selecciona todos los elementos <p> donde el padre es un elemento <div> |
element + element | div + p | Selecciona el primer elemento <p> que se coloca inmediatamente después de los elementos <div> |
element1 ~ element2 | p ~ ul | Selecciona todos los elementos <ul> que están precedidos por un elemento <p> |