Pergunta
Eu tenho um CSS que se parece com isso:
a:focus { background-color: #eeeeee; }
Agora, em CSS3 há o atributo não (). Como eu poderia trabalhar com isso quando eu quero adicionar o foco-background-color para todos os elementos mas com uma exceção: eu quero que este não é adicionado a um-tags / elementos dentro .audio_wrapper
Solução
A: não pseudo-classe não irá ajudá-lo nessa situação porque ele só aceita seletores simples , e sua condição se baseia em um atributo do pai do a
. A melhor solução é apenas para definir a regra e, em seguida, substituí-lo com uma segunda regra para o caso condicional.
Edit: Pensando bem, você pode ser capaz de fazê-lo como este:
:not(.audio_wrapper) a:focus { ...rules... }
Outras dicas
Tente com houver regras:
a:focus { background-color: #eeeeee; }
.audio_wrapper a:focus {background-color: #000000}; <!-- or white or what is your default color-->
A não selector só é suportado pelos navegadores modernos (Firefox, Safari e Opera) e não IE.
A: Não (.audio_wrapper) {background-color: #eeeeee; ............}