Como escrever :hover
e :visited
condição para a:before
?
Estou tentando, a:before:hover
mas não está funcionando
fonte
Como escrever :hover
e :visited
condição para a:before
?
Estou tentando, a:before:hover
mas não está funcionando
Isso depende do que você está realmente tentando fazer.
Se você simplesmente deseja aplicar estilos a um :before
pseudo-elemento quando o a
elemento corresponde a uma pseudo-classe, você precisa escrever a:hover:before
ou a:visited:before
substituir. Observe que o pseudoelemento vem após a pseudo classe (e, de fato, no final de todo o seletor). Observe também que são duas coisas diferentes; chamá-los de "pseudo-seletores" vai confundir você quando você tiver problemas de sintaxe como este.
Se você está escrevendo CSS3, pode denotar um pseudoelemento com dois pontos para deixar essa distinção mais clara. Portanto, a:hover::before
e a:visited::before
. Mas se você estiver desenvolvendo para navegadores herdados, como o IE8 e anteriores, poderá usar apenas dois pontos únicos.
Esta ordem específica de pseudo-classes e pseudo-elementos é declarada na especificação :
Um pseudoelemento pode ser anexado à última sequência de seletores simples em um seletor.
Uma sequência de seletores simples é uma cadeia de seletores simples que não são separados por um combinador. Sempre começa com um seletor de tipo ou seletor universal. Nenhum outro seletor de tipo ou seletor universal é permitido na sequência.
Um seletor simples é um seletor de tipo, seletor universal, seletor de atributo, seletor de classe, seletor de ID ou pseudo-classe.
Uma pseudo-classe é um seletor simples. Um pseudoelemento, no entanto, não é, embora se assemelhe a um simples seletor.
No entanto, para pseudo-classes de ação do usuário como :hover
1 , se você precisar que esse efeito seja aplicado somente quando o usuário interagir com o próprio pseudo-elemento, mas não com o a
elemento, isso não será possível senão por meio de uma solução alternativa dependente de layout obscura . Como está implícito no texto, atualmente os pseudoelementos CSS padrão não podem ter pseudo-classes. Nesse caso, você precisará aplicar :hover
a um elemento filho real em vez de um pseudoelemento.
1 Obviamente, isso não se aplica a pseudo-classes de link, :visited
como na pergunta, pois pseudo-elementos não são links.
text-decoration
.Escreva em
a:hover::before
vez dea::before:hover
: exemplo .fonte
:after
vs CSS3::after
developer.mozilla.org/en-US/docs/Web/CSS/::after (single:
tem melhor suporte)Para alterar o texto do link do menu ao passar o mouse. (Texto de idioma diferente ao passar o mouse) aqui está o
exemplo jsfiddle
html:
css:
fonte
a:hover::before
com o estilotext-decoration: underline
, o que faz com que o sublinhado escolha a cor vermelha do texto de substituição.Tente usar
.card-listing:hover::after
hover
eafter
usá-::
lo funcionaráfonte
A resposta do BoltClock está correta. A única coisa que quero acrescentar é que, se você quiser selecionar apenas o pseudo elemento, coloque um espaço.
Por exemplo:
ao invés de:
Dessa forma, você pode simplesmente dizer
que destacará apenas o pseudo elemento, não o elemento li inteiro
fonte
Você também pode restringir sua ação a apenas uma classe usando o colchete direito (">"), como fiz neste código:
Nota: A opção hover: before funciona apenas na classe .test1
fonte