¿Qué significa el selector CSS ">" (signo mayor que)?
Por ejemplo:
div > p.some_class {
/* Some declarations */
}
¿ Qué >
significa exactamente el letrero?
>
es el combinador hijo , a veces llamado erróneamente combinador descendiente directo. 1
Eso significa que el selector div > p.some_class
solo coincide con los párrafos .some_class
que están anidados directamente dentro de a div
, y no con los párrafos que están anidados más adentro. Esto implica que cada elemento que coincide div > p.some_class
necesariamente también coincide div p.some_class
con el combinador descendiente (espacio), por lo que, comprensiblemente, a menudo se confunden los dos.
Una ilustración que compara el combinador hijo con el combinador descendiente:
div > p.some_class {
background: yellow;
}
div p.some_class {
color: red;
}
<div>
<p class="some_class">Some text here</p> <!-- [1] div > p.some_class, div p.some_class -->
<blockquote>
<p class="some_class">More text here</p> <!-- [2] div p.some_class -->
</blockquote>
</div>
¿Qué elementos coinciden con qué selectores?
Coincidente con ambos
div > p.some_class
ydiv p.some_class
Estop.some_class
se encuentra directamente dentro dediv
, por lo que se establece una relación padre-hijo entre ambos elementos. Dado que "niño" es un tipo de "descendiente", cualquier elemento hijo es, por definición, también un descendiente. Por tanto, se aplican ambas reglas.Coincidente solo con
div p.some_class
Estop.some_class
está contenido en ablockquote
dentro dediv
, en lugar de endiv
sí mismo. Aunque estep.some_class
es un descendiente dediv
, no es un niño; es un nieto. Por tanto, sólo se aplica la regla con el combinador descendiente en su selector.
1 Muchas personas van más allá y lo llaman "hijo directo" o "hijo inmediato", pero eso es completamente innecesario (e increíblemente molesto para mí), porque un elemento hijo es inmediato por definición de todos modos, por lo que significan exactamente lo mismo. No existe tal cosa como un "niño indirecto".
>
(signo mayor que) es un combinador CSS.
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.
Hay cuatro combinadores diferentes en CSS3:
- selector descendiente (espacio)
- selector de niños (>)
- selector de hermanos adyacentes (+)
- selector de hermanos general (~)
Nota: <
no es válido en selectores CSS.
Por ejemplo:
<!DOCTYPE html>
<html>
<head>
<style>
div > p {
background-color: yellow;
}
</style>
</head>
<body>
<div>
<p>Paragraph 1 in the div.</p>
<p>Paragraph 2 in the div.</p>
<span><p>Paragraph 3 in the div.</p></span> <!-- not Child but Descendant -->
</div>
<p>Paragraph 4. Not in a div.</p>
<p>Paragraph 5. Not in a div.</p>
</body>
</html>
Producción:
Más información sobre los combinadores CSS
Como otros mencionan, es un selector de niños. Aquí está el enlace apropiado.
http://www.w3.org/TR/CSS2/selector.html#child-selectors