2011-02-05 29 views
253

¿Cómo se pueden seleccionar todos los elementos secundarios recursivamente?Seleccionar todos los elementos secundarios recursivamente en CSS

div.dropdown, div.dropdown > * { 
    color: red; 
} 

Esta clase solo arroja una clase sobre el className definido y todos los hijos inmediatos. ¿Cómo se puede, de una manera sencilla, recoger todas las childNodes como este:

div.dropdown, 
div.dropdown > *, 
div.dropdown > * > *, 
div.dropdown > * > * > *, 
div.dropdown > * > * > * > * { 
    color: red; 
} 

Respuesta

416

utilizar un espacio en blanco para que coincida con todos los descendientes de un elemento:

div.dropdown * { 
    color: red; 
} 

x y partidos cada elemento y es decir, dentro de x, sin importar cuán profundamente anidada pueda estar: hijos, nietos, etc.

El asterisco * coincide con cualquier elemento.

especificación oficial: CSS 2.1: Chapter 5.5: Descendant Selectors

+0

funciona, pero ahora se anula todas las demás clases, incluso si tienen una prioridad más alta .. (se colocan después en el archivo css) – clarkk

+0

El selector también juega un papel en la qué prioridad tienen las propiedades, no solo en qué parte del archivo aparecen. Podría intentar agregar '! Important' a sus valores, p. 'color: rojo! importante;' – anroesti

+0

bien ... ¿es esta la única manera de hacerlo? añadiendo! importante? – clarkk

85

La regla es la siguiente:

A B 

B como un descendiente de una

A > B 

B como un hijo de un

Así

div.dropdown * 

y no

div.dropdown > * 
Cuestiones relacionadas