Eu estou utilizando CSS para mudar um ícone na minha página ao passar o mouse.
<a href="www.link.com" target="_blank">
<div id="img"> </div>
</a>
#img {
background-img: url(./imagem1a.png);
}
#img:hover {
background-img: url(./imagem1b.png);
}
O que eu fiz foi criar uma <div>
e aplicar um background-image
nele para que eu pudesse trocar a imagem ao passar o mouse (usando o :hover
). Só que ao utilizar este método, eu não tenho o atributo alt
que mostra um texto caso a imagem não apareça. Por se tratar de um link (é um ícone que direciona a uma rede social), eu acho importante manter o texto alternativo (deixar evidente pra pessoa que aquilo é clicável e para onde é o link).
Eu pensei em usar o atributo title
, mas ele só aparece caso a pessoa pare o mouse sobre o elemento.
Pesquisei um pouco mais e eu descobri uma outra forma, através do HTML com um comando inline:
<img src="./img/icone1a.png" onmouseover="this.src='./img/icone1b.png'" onmouseout="this.src='./img/icone1a.png'" alt="texto-alternativo">
Minha dúvida: Esse método no HTML é uma boa prática? Ou está caindo em desuso? Tem alguma outra forma que seria ideal?
- Resposta: Sim, o código acima é uma má prática, não é legal usar JS inline. O atributo não é obsoleto. E sim, há outra forma melhor dentro das boas práticas.
Com base na solução do colega abaixo, este foi o resultado: