2010-04-14 11 views
85

Cuál es el punto, con esta sintaxisselectores CSS,> frente espacio

div.card > div.name 

¿Cuál es la diferencia entre este

div.card div.name 
+0

Además de esta pregunta, ya que no era consciente de esto y podría ser utilizado para resolver un problema que tengo, ¿qué navegadores son compatibles con este tipo de selector? – Kyle

+3

Es compatible con todos los navegadores actuales. IE obtuvo soporte en la versión 7: http://msdn.microsoft.com/en-us/library/cc351024(VS.85).aspx#combinators –

Respuesta

130

A > B solo seleccionarán 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.

0

div.card > div.name partidos <div class='card'>....<div class='name'>xxx</div>...</div> pero no coincide con <div class='card'>....<div class='foo'> ... <div class='name'>xxx</div>..</div>....</div>

div.card div.name coincide con ambos.

Es decir, el selector de > se asegura que el elemento seleccionado en la parte derecha de la > es un niño immidiate del elemento en su lado izquierdo.

La sintaxis sin el > coincide con cualquier <div class='name'> que sea un descendiente (no solo un niño) de <div class='card'>.

+0

Sí, las respuestas que tardan más de 15 minutos no son válidas; -) –

6

> es el child selector. Especifica elementos solamente inmediatos niño y no cualquier descendiente (incluyendo nietos, abuelos nietos etc.) como en el segundo ejemplo sin la >.

IE 6 y versiones inferiores no son compatibles con el selector de elementos secundarios. Una gran tabla de compatibilidad es here.

+1

Esta respuesta necesita ser arreglada. '>' es el [selector de niños] (https://www.w3.org/TR/CSS2/selector.html#child-selectors); es el [selector de descendiente] (https://www.w3.org/TR/CSS2/selector.html#descendant-selectors). – SNag

+0

@SNag arreglado, no estoy seguro de lo que estaba pensando, ¡gracias! –

Cuestiones relacionadas