2011-05-31 15 views
31

Tengo <div id='mydiv'> y necesito seleccionar todos los elementos pre y div que son hijos de #mydiv.¿Cómo seleccionar múltiples elementos que son elementos secundarios de un elemento dado?

que podía hacerlo de esta manera:

div#mydiv > pre, div#mydiv > div 

pero, ¿se puede hacer para que #mydiv se referencia una sola vez?

div#mydiv > pre, div 

seleccionará todos div s en la página sin tener en cuenta si son hijos de #mydiv, por lo que el coma no es una manera de hacerlo. ¿Tal vez hay otro tipo de sintaxis que no conozco?

+1

eso es todo ... no hay otra manera – Teneff

+2

Bueno, no necesitas 'div' al principio de tu selector ... – Fosco

Respuesta

28

que tendrá que hacer referencia a #mydiv dos veces ...

#mydiv > pre, #mydiv > div 

Quité el selector de div elemento extraño que el ID es lo suficientemente específica.

+1

está de acuerdo con eliminando el calificador div, pero no veo jQuery mencionado en la pregunta o las etiquetas, ¿tal vez solo lo escriba como CSS? – clairesuzy

+0

@clairesuzy nice catch ... actualizado. – Fosco

8

Por lo que sé, no hay una abreviatura para la agrupación de selectores.

Ver "Selector Grouping".

Aunque, con LESS, es posible en la sección "Reglas anidadas".

+2

Este es el tipo de estuche que LESS está diseñado para manejar, parece que –

2

La única manera de hacer referencia a la ID única vez es para usarlo con el selector *:

#mydiv > * { 

que se aplicará a todos los elementos que son hijos de ese div.

Dependiendo de los estilos que planee aplicar, esto podría ser factible (normalmente lo utilizo para poner a cero los márgenes, el relleno y los estilos de borde), pero probablemente sea mejor hacerlo de la primera manera porque hace que sea más fácil hacer excepciones/cambios más adelante en el camino.

Cuestiones relacionadas