A :not()
propriedade em CSS é uma pseudo classe de negação e aceita um seletor simples ou uma lista de seletores como argumento. Corresponde a um elemento que não é representado pelo argumento. O argumento passado não pode conter seletores adicionais ou quaisquer seletores de pseudoelemento.
A capacidade de usar uma lista de seletores como argumento é considerada experimental, embora seu suporte esteja crescendo no momento em que este artigo foi escrito, incluindo Safari (desde 2015), Firefox (desde dezembro de 2020) e Chrome (desde janeiro de 2021).
/* the X argument can be replaced with any simple selectors */ :not(X) ( property: value; )
Neste exemplo, temos uma lista não ordenada com uma única classe no
Nosso CSS selecionaria todos os
.different
.
/* Style everything but the .different class */ li:not(.different) ( font-size: 3em; )
Você também pode fazer o mesmo usando pseudo classes, que são consideradas um seletor simples.
p:not(:nth-child(2n+1)) ( font-size: 3em; )
No entanto, se usarmos um seletor de pseudoelemento como nosso argumento, ele não produzirá o resultado esperado.
:not(::first-line) ( /* ::first-line is a pseudo element selector and not a simple selector */ color: white; )
Seletores Complexos
/* select all
s that are not descendants of */ p:not(article *) ( )
Exemplo Visual
Especificidade
A especificidade da :not
pseudoclasse é a especificidade de seu argumento. A :not()
pseudo-classe não adiciona especificidade ao seletor, ao contrário de outras pseudo-classes.
Negações não podem ser aninhadas, portanto, :not(:not(… ))
nunca é permitido. Os autores também devem observar que, uma vez que os pseudo-elementos não são considerados um seletor simples, eles não são válidos como um argumento para :not(X)
. Fique atento ao usar seletores de atributo, pois alguns não são amplamente suportados como outros. O encadeamento de :not
seletores com outros :not
seletores é permitido.
Suporte de navegador
A :not()
pseudo classe foi atualizada na especificação CSS Selectors Nível 4 para permitir uma lista de argumentos. Nos seletores CSS de nível 3, ele só era capaz de aceitar um único seletor simples. Como resultado, o suporte ao navegador é um pouco dividido entre os rascunhos de Nível 3 e Nível 4.
Seletores simples
IE | Beira | Raposa de fogo | cromada | Safári | Ópera |
---|---|---|---|---|---|
9+ | Todo | Todo | Todo | 12,1+ | Todo |
Android Chrome | Android Firefox | Navegador Android | iOS Safari | Opera Mobile |
---|---|---|---|---|
Todo | Todo | Todo | Todo | Todo |
Listas de seleção
Os dados de suporte deste navegador são do Caniuse, que tem mais detalhes. Um número indica que o navegador oferece suporte ao recurso nessa versão e superior.
Área de Trabalho
cromada | Raposa de fogo | IE | Beira | Safári |
---|---|---|---|---|
88 | 84 | Não | 88 | 9 |
Celular / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 9,0-9,2 |
Mais Informações
- Módulo Seletores CSS Nível 3
- Especificação de seletores CSS de nível 4