Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Pseudoclasses sequenciais

Eu só tenho uma duvida em relação a pseudoclasse :visited por exemplo eu percebi que ao usar ela o :hover para de funcionar então eu coloquei uma pseudoclasse na pseudoclasse, a minha duvida é a seguinte, por boas praticas isso seria correto ou teria outra forma de aplicar um hover em links visitados?

codigoresultado do codigo

2 respostas
solução!

Oi, Renan, tudo bem?

Ao aplicar a pseudoclasse :visitede :hovernum mesmo elemento do arquivo HTML, neste caso na tag <a> podemos enfrentar o problema que você trouxe em sua postagem, devido à hierarquia do CSS. Essa hierarquia diz que tags são mais fracas que classes que são mais fracas que id.

Vamos pensar da seguinte maneira: uma tag tem força igual a 1, uma classe tem força igual a 10 e um idtem força igual a 100. Ao utilizar para definir as pseudoclasses :visitede :hover uma classe seguida de uma tag, ambas apresentam a mesma força que seria a soma da força da tag com a força da classe, portanto, o valor seria 11.

.lista__link a:hover {
    color: red;
}

.lista__link a:visited {
    color: purple;
}

Dessa forma, nenhuma seria superior a outra, e nesse caso, a pseudoclasse :visited teria maior influência visto que ela altera a cor de um elemento visitado para indicar que ele já foi clicado. Com isso, o :hovernão conseguiria exercer alteração na cor, pois teria a mesma força da pseudoclasse :visited não podendo sobrescrever o estilo aplicado por ela.

A forma como você escreveu o código aplicando uma pseudoclasse dentro de outra, pode ser utilizada, entretanto, o mais indicado seria escrever o estilo do :hoverde modo que ele possua uma força na hierarquia, maior que a pseudoclasse :visited. Podemos pensar em algo da seguinte maneira:

.rodape__lista li a:hover {
    color: var(--botao-azul);
}

.lista__link a:visited {
    color: purple;
}

No exemplo do código acima, estamos usando a classe da tag <ul> seguida da tag <li>e da tag <a> para aplicar o :hover. Dessa forma, a força será de 12, pois temos somados uma classe+ duas tags (10+1+1). Portanto, a força da pesudoclasse :hoverserá maior que a da :visited sendo possível sobrescrever o estilo aplicado aos elementos já visitados.

Espero ter ajudado. Caso tenha dúvidas, não hesite em postar no fórum!

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Obrigado! Agora ficou mais claro!