SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
08.04.2025

Usando o Efeito Hover em CSS Inline: a:hover para Email HTML

Resposta Rápida

Use eventos JavaScript para simular :hover em estilos inline:

<a href="#"
   onmouseover="this.style.backgroundColor='#ffff00'"
   onmouseout="this.style.backgroundColor=''">Passe o mouse em mim!</a>

O fundo do link ficará amarelo quando o mouse passar sobre ele, e voltará ao seu estado original quando o cursor se afastar.

Delegar o Tratamento do Evento Hover para o JavaScript

Estilos inline não suportam pseudo-classes como :hover. No entanto, não há motivo para se preocupar: podemos recorrer ao JavaScript, que nos permite criar efeitos visuais dinâmicos.

Fundamentos de Tratamento de Eventos Hover em JavaScript

Usando os eventos onmouseover e onmouseout diretamente em HTML, recriamos efeitos semelhantes ao :hover:

<span onmouseover="this.style.color='green'"
      onmouseout="this.style.color='initial'">Passe o mouse em mim para mudar a cor!</span>

Graças aos eventos JavaScript, a página ganha vida.

Aplicando Efeitos Hover a Múltiplos Elementos

A solução mais eficaz para efeitos hover em múltiplos elementos é usar JavaScript. Isso permite que você aplique estilos a uma classe de elementos de uma só vez:

function adicionarEfeitoHover(nomeClasse, estiloHover) {
  var elementos = document.getElementsByClassName(nomeClasse);
  for (var i = 0; i < elementos.length; i++) {
    elementos[i].onmouseover = function() { this.style.cssText = estiloHover; };
    elementos[i].onmouseout = function() { this.style.cssText = ''; };
  }
}

Para ativar esse efeito, chame a função com a classe desejada e os estilos:

adicionarEfeitoHover('hoveravel', 'color: red; background: yellow;');

Considerações para Usar Efeitos Hover em Emails HTML

Usar JavaScript para criar efeitos hover em emails HTML pode resultar em comportamentos inesperados. É essencial entender como o email será renderizado em diferentes plataformas. Às vezes, é melhor priorizar a simplicidade em vez de efeitos hover sofisticados.

Visualização

Imagine criar estilos :hover usando apenas CSS inline. Se pensarmos no CSS como "cordões" de um par de sapatos, então o JavaScript se torna um "robô artista habilidoso".

Com CSS clássico, você pode fazer as cores dos cordões mudarem sob a luz do sol, mas com CSS inline sem suporte a eventos, você só tem uma cor.

Para criar "cordões inteligentes" que podem mudar de cor sob a luz do sol, você precisará de um "robô" que tingue os cordões durante o dia e desfaça a cor na sombra.

Efeitos hover não podem ser implementados apenas com CSS inline, sem usar uma folha de estilo externa ou um elemento <style>. No entanto, com o suporte de um "robô", o trabalho começa a avançar!

Usando Variáveis CSS e JavaScript

Efeitos Hover Dinâmicos Usando Variáveis CSS

Variáveis CSS podem ser controladas via JavaScript, nos fornecendo novas maneiras de usá-las em CSS inline:

document.documentElement.style.setProperty('--cor-hover', 'red');

Manipulação Eficiente do DOM

Mudanças frequentes no DOM via JavaScript podem impactar o desempenho. Para evitar isso, aqui está o que você pode fazer:

document.addEventListener('mouseover', function(event) {
  if (event.target.matches('.hoveravel')) {
    event.target.style.backgroundColor = 'red';
  }
});

Dessa forma, designamos um "guardião" que observa todos os efeitos hover no documento.

Recursos Úteis

  1. :hover - CSS: Folhas de Estilo em Cascata | MDN — Descrição detalhada da pseudo-classe :hover.
  2. Selecionador CSS :hover — Explicação clara e exemplos do seletor :hover.
  3. :hover | CSS-Tricks - CSS-Tricks — Visão geral dos estilos de efeitos hover no site CSS-Tricks.
  4. Wiki de tags 'bugtracker.net' - Stack Overflow — Discussões sobre problemas relacionados a pseudo-classes em estilos inline.
  5. Como Criar uma Ilustração de Estilo de Vida em Paris no Sketch | Envato Tuts+ — Um tutorial abrangente sobre design web da Tuts+, apesar da incompatibilidade de título.
  6. Ferramenta CSS Inliner | Referência de Design de Email — Uma ferramenta da MailChimp para inlining CSS, especialmente útil para design de email.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!