Múltiples clases dentro: not () [duplicar]


Esta pregunta ya tiene una respuesta aquí:

Estoy tratando de usar la propiedad :not() para excluir un par de clases de una regla, por ejemplo:

*:not(.class1, class2) { display: none; }

Sin embargo, parece que la propiedad not() no admite clases separadas por comas, como se muestra en esto fiddle .

HTML:

<div class='one'>
  foo
</div>
<div class='two'>
  foo
</div>
<div class='three'>
  foo
</div>
<div class='four'>
  foo
</div>

CSS:

div {
  background-color: #CBA;
}

div:not(.one) {
  background-color: #ABC;
}

div:not(.one, .three) {
  color: #F00;
}

La primera y la segunda reglas se aplican, pero la tercera no.{[13]]}

No puedo hacer *:not(.class1), *:not(.class2) porque cualquier elemento que tenga class2 será seleccionado por *:not(.class1) y viceversa.

No quiero hacer

* { display: none;}
.class1, .class2 { display: inline; }

Porque no todos los elementos .class1 y .class2 tienen la misma propiedad de visualización original, y quiero que la conserven.

¿Cómo puedo excluir múltiples clases de una regla, ya sea con el not() ¿propiedad o no?

Author: asfallows, 2014-06-17

1 answers

Puedes usar:

div:not(.one):not(.three) {
    color: #F00;
}

Fiddle

 173
Author: Beterraba,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-17 14:35:42