Me gustaría escribir una regla de selector de CSS que seleccione todos los elementos que no tienen una clase determinada. Por ejemplo, dado el siguiente HTML:
<html class="printable">
<body class="printable">
<h1 class="printable">Example</h1>
<nav>
<!-- Some menu links... -->
</nav>
<a href="javascript:void(0)" onclick="javascript:self.print()">Print me!</a>
<p class="printable">
This page is super interresting and you should print it!
</p>
</body>
</html>
Me gustaría escribir un selector que seleccione todos los elementos que no tienen la clase "imprimible" que, en este caso, son la navegación y un elemento.
es posible?
NOTA: en el HTML real donde me gustaría usar esto, habrá muchos más elementos que no tienen la clase "imprimible" que la que tengo (me doy cuenta de que es al revés en el ejemplo anterior).
fuente
:not()
en la pantalla, tampoco lo será en la impresión.:not()
solo toma un selector simple, lo que significa que no puede contener selectores anidados como:not(div .printable)
- vea la sintaxis del Selector W3C:not(.active)
regla pueden haber sido anuladas simplemente por propiedades en la (s) regla (s) con mayor prioridad.:not()
es la de su argumento, lo que significa que:not(div)
es igualmente específico paradiv
,:not(.cls)
para.cls
y:not(#id)
para#id
.En realidad, esto seleccionará cualquier cosa que no tenga una clase css (
class="css-selector"
) aplicada.Hice una demo jsfiddle
¿Esto es compatible? Sí: Caniuse.com (consultado el 2 de enero de 2020) :
Edición divertida, estaba buscando en Google lo contrario de: no. Negación CSS?
fuente
La
:not
pseudo clase de negaciónPuede usar
:not
para excluir cualquier subconjunto de elementos coincidentes, ordenados como lo haría con los selectores CSS normales.Ejemplo simple: excluyendo por clase
div:not(.class)
Seleccionaría todos los
div
elementos sin la clase.class
Ejemplo complejo: excluyendo por tipo / jerarquía
:not(div) > div
Seleccionaría todos los
div
elementos que no son hijos de otrodiv
Ejemplo complejo: encadenar pseudo-selectores
Con la notable excepción de no poder encadenar / anidar
:not
selectores y pseudoelementos, puede usarlo junto con otros pseudo-selectores.Soporte de navegador , etc.
:not
es un selector de nivel CSS3 , la principal excepción en términos de soporte es que es IE9 +La especificación también hace un punto interesante:
fuente
:not(div) > div
funcionaría solo con padres directos. ¿Qué hay de otros abuelos?Creo que esto debería funcionar:
De la respuesta "selector css negativo" .
fuente
Solo quiero contribuir a que las respuestas anteriores de: not () pueden ser muy efectivas en formas angulares, en lugar de crear efectos o ajustar la vista / DOM,
Asegura que al cargar su página, los campos de entrada solo mostrarán los no válidos (bordes rojos o fondos, etc.) si tienen datos agregados (es decir, ya no son prístinos) pero no son válidos.
fuente
Ejemplo
// Opacity 0.6 all "section-" pero no "section-name"
fuente
Puede usar el
:not(.class)
selector como se mencionó anteriormente.Si le interesa la compatibilidad con Internet Explorer, le recomiendo que use http://selectivizr.com/ .
Pero recuerde ejecutarlo bajo apache, de lo contrario no verá el efecto.
fuente
Usando la
:not()
pseudo clase:Para seleccionar todo menos un determinado elemento (o elementos). Podemos usar el
:not()
pseudo clase CSS . La:not()
pseudo clase requiere unCSS
selector como argumento. El selector aplicará los estilos a todos los elementos, excepto a los elementos que se especifican como argumento.Ejemplos:
Ya podemos ver el poder de esta pseudo clase, nos permite ajustar convenientemente nuestros selectores al excluir ciertos elementos. Además, esta pseudo clase aumenta la especificidad del selector . Por ejemplo:
fuente
Si desea que un menú de clase específico tenga un CSS específico si falta clase iniciada sesión :
fuente
Como otros dijeron, simplemente pones: no (.class). Para los selectores de CSS, recomiendo visitar este enlace, ha sido muy útil durante mi viaje: https://code.tutsplus.com/tutorials/the-30-css-selectors-you-must-memorize--net-16048
La pseudo clase de negación es particularmente útil. Digamos que quiero seleccionar todos los divs, excepto el que tiene una identificación de contenedor. El fragmento anterior manejará esa tarea perfectamente.
O, si quisiera seleccionar cada elemento (no recomendado) excepto las etiquetas de párrafo, podríamos hacer:
fuente