¿De qué sirve usar esta sintaxis?
div.card > div.name
¿Cuál es la diferencia entre esto?
div.card div.name
css
css-selectors
Randy Mayer
fuente
fuente
Respuestas:
A > B
solo seleccionará B que son hijos directos a A (es decir, no hay otros elementos intermedios).A B
seleccionará cualquier B que esté dentro de A, incluso si hay otros elementos entre ellos.fuente
>
es el selector hijo Especifica solo elementos secundarios inmediatos y no ningún descendiente (incluidos nietos, bisnietos, etc.) como en el segundo ejemplo sin>
.El selector secundario no es compatible con IE 6 y versiones inferiores. Una gran tabla de compatibilidad está aquí .
fuente
div.card > div.name
coincide<div class='card'>....<div class='name'>xxx</div>...</div>
pero no coincide<div class='card'>....<div class='foo'> ... <div class='name'>xxx</div>..</div>....</div>
div.card div.name
coincide con ambos.Es decir, el
>
selector se asegura de que el elemento seleccionado en el lado derecho del elemento>
sea un elemento secundario inmediato del elemento en su lado izquierdo.La sintaxis sin las
>
coincidencias<div class='name'>
que sea descendiente (no solo secundaria) de<div class='card'>
.fuente
A> B selecciona B si es un hijo directo de A, mientras que AB selecciona B si es un hijo directo de B o no.
fuente
> vs espacio
Considere los dos escenarios
div > span { }
vs.div span { }
Aquí, el
<space>
selecciona todos los<span>
elementos del<div>
elemento, incluso si están dentro de otro elemento. El> selecciona todos los<div>
elementos secundarios del elemento pero si están dentro de otro elemento.> (Mayor que):
Este solo selecciona
<span>World!</span>
y no buscará la etiqueta<span>
interna<p>
.Espacio
Éste selecciona todas las etiquetas span, incluso si están anidadas dentro de otra etiqueta.
fuente