2010-03-31 14 views
273

Tengo una regla de estilo que quiero aplicar a una etiqueta cuando tiene dos estilos. ¿Hay alguna forma de realizar esto sin JavaScript? En otras palabras:Seleccionar elemento basado en múltiples clases

<li class='left ui-class-selector'> 

quiero aplicar mi regla de estilo solamente si el li tiene tanto .left y .ui-class-selector clases aplicadas.

Respuesta

471

¿Quiere decir dos clases? "cadena" los selectores (sin espacios entre ellos):

.class1.class2 { 
    /* style here */ 
} 

Esto selecciona todos los elementos con class1 que también tienen class2.

En su caso:

li.left.ui-class-selector { 

} 

documentación oficial: CSS2 class selectors.


Como akamike puntos sobre un problema con este método en Internet Explorer 6 es posible que desee leer esto: Use double classes in IE6 CSS?

+6

Tenga en cuenta que IE6 no le gusta esto, ya que no lee la cadena de clases. Solo mirará la última clase de la cadena. – akamike

+10

no lo es :) Todos los principales sitios web se han caído, están cayendo o están planeando caer en el soporte de futuro para IE6 ... ¡Haz lo mismo! –

+0

@Andreas Bonini: Sí, lo sé. Para ser sincero, ya no me importa IE6 durante mucho tiempo. (Eliminé mi comentario anterior porque encontré la otra pregunta que trata este problema.) –

18

selectores cadena no se limitan sólo a las clases, puede hacerlo para ambas clases y ids.

Clases

.classA.classB { 
/*style here*/ 
} 

Clase & Id

.classA#idB { 
/*style here*/ 
} 

Id & Id

#idA#idB { 
/*style here*/ 
} 

Todos los buenos navegadores actuales admiten esto, excepto IE 6, que se selecciona en función del último selector de la lista. Entonces ".classA.classB" seleccionará basado solo en ".classB".

para su caso

li.left.ui-class-selector { 
/*style here*/ 
} 

o

.left.ui-class-selector { 
/*style here*/ 
} 
Cuestiones relacionadas