2010-01-27 9 views
8

¿Hay alguna manera de combinar dos o más selectores de CSS utilizando una condición booleana: and, or, not?Combinación de dos o más selectores de CSS con una condición booleana

consideran este <div>:

<div class="message error"> 
    You have being logged out due too much activity. 
</div> 

Podría seleccionar sólo aquellos elementos que contienen tanto las clases, por ejemplo?

Algo en la línea de div.message && div.error?

+0

¿Dónde quieres hacer la selección? ¿En Javascript (usando una lib?) O en una hoja de estilo u otro idioma? – beggs

+0

estos selectores irán en una hoja de estilo. – Anurag

+1

La pregunta ya ha sido respondida correctamente, pero tenga en cuenta que los selectores de doble clase no funcionan en nuestro querido amigo IE6. – adamJLev

Respuesta

13

Estos deben trabajar:

&& = div.message.error {} 
|| = div.message, div.error {} 

No creo que se puede hacer "no"

Editar: Sólo hizo una prueba rápida para confirmar:

<html> 
    <head> 
     <style type="text/css"> 
      div.error.message { 
       background-color: red; 
      } 
      div.message, div.error { 
       border: 1px solid green; 
      } 
     </style> 
    </head> 
    <body> 
     <div>None</div> 
     <div class="error">Error</div> 
     <div class="message">Message</div> 
     <div class="error message">Error Message</div> 
    </body> 
</html> 

El "mensaje" , los "divs" de "error" y "mensaje de error" tienen un borde verde y solo el div "mensaje de error" tiene un fondo rojo.

+1

perfect .. 'not' no es una gran preocupación, solo' and' y 'or' son ... wow tenemos un trabalenguas aquí :) .. muchas gracias por el ejemplo detallado. – Anurag

+0

Gran solución. Simplemente curioso, ¿está formalmente documentada la solución en alguna parte, como en las especificaciones de CSS, etc.? Útil para referencia. – David

5

Probar div.message.error.

+2

... ese, creo que es el caso "y". Para "o" simplemente puede repetir la línea con cada clase. – Jay

+0

de ninguna manera podría haberlo adivinado. ¡muchas gracias! – Anurag

Cuestiones relacionadas