Hover CSS: ativando estilo de um elemento

Nesta documentação você aprenderá sobre a pseudo-classe CSS :hover e como utilizá-la no código para gerar mudanças de estilo com a interação do usuário.

:hover

O :hover é uma pseudo-classe CSS que ao ser utilizada ativa estilos em um elemento.

O :hover possibilita um elemento ter o seu estilo alterado através da ação do usuário, quando o próprio passa o cursor do mouse sobre o elemento.

Este recurso é bastante utilizado para adicionar funcionalidades de interação em uma aplicação web.

Como utilizar a pseudoclasse :hover?

O :hover deve ser utilizado após um seletor CSS, que pode ser um elemento (todos os elementos HTML), uma classe, ou um id.

Hover CSS: na prática

a:hover { background-color: orange; }

Sintaxe CSS

seletor:hover { propriedade: valor; }

Exemplos de uso do :hover

Exemplo 1

Nos Códigos 1 e 2 temos um exemplo que demonstra a pseudo-classe :hover sendo aplicada em diversos elementos e cada um apresentando um efeito diferente.

<h2>Passe o mouse sobre os links para vê-los mudar o estilo.</h2> <p><a class="exemplo1" href="default.asp">Passe o mouse sobre o link e mude sua a cor</a></p> <p><a class="exemplo2" href="default.asp">Passe o mouse sobre o link e mude o tamanho de sua fonte</a></p> <p><a class="exemplo3" href="default.asp">Passe o mouse sobre o link e mude a sua cor de fundo</a></p> <p><a class="exemplo4" href="default.asp">Passe o mouse sobre o link e mude a sua fonte</a></p>
Código 1. Código HTML
.exemplo1:hover { color: red; } .exemplo2:hover { font-size: 150%; } .exemplo3:hover { background: red; } .exemplo4:hover { font-family: monospace; }
Código 2. Código CSS

Note que ao passar o cursor do mouse sobre os links, os seus estilos serão modificados momentaneamente.

Exemplo 2

Nos Códigos 3 e 4 temos o exemplo em que demonstramos o uso do :hover alterando as cores de fundo de dois elementos.

<div> <button>Clique aqui</button> </div>
Código 3. Código HTML
div { width: 300px; height: 300px; border-radius: 8px; border: 2px solid black; display: flex; align-items:center; justify-content: center; } div:hover { background-color: aqua; } button { font-size: 18px; font-weight: 600; background-color: blue; color: white; padding: 10px 20px; border-radius: 15px; border: none; cursor: pointer; } button:hover { background-color: red; }
Código 4. Código CSS

Note que neste exemplo o elemento <button> encontra-se dentro do elemento <div>. Ao passar o cursor do mouse em ambos os elementos, eles terão os seus estilos modificados.

Perceba que mesmo passando o cursor em cima no botão, o elemento div continua com o estilo modificado. Isso acontece porque o elemento botão está contido no elemento div.

Exemplo 3

Nos Códigos 5 e 6 temos o exemplo em que demostramos como realizar um menu dropdown com o uso do :hover.

<div> <ul> <li class='lista1'> <a href="#">Menu Dropdown</a> <ul class='lista2'> <li class='lista-link'><a class='link' href="#">Link 1</a></li> <li class='lista-link'><a class='link' href="#">Link 2</a></li> <li class='lista-link'><a class='link' href="#">Link 3</a></li> </ul> </li> </ul> </div>
Código 5. Código HTML
*{ margin: 0; } div { background-color: yellow; } div a { text-decoration: none; color: black; font-size: 20px; font-weight: 600; padding: 15px; display:inline-block; } ul { display: inline; margin: 0; padding: 0; } .lista1 { display: inline-block; } .lista1:hover { background: #333; } .lista1:hover .lista2 { display: block; } .lista2 { position: absolute; width: 200px; display: none; } .lista-link { background: #555; display: block; } .link { display:block !important; } .lista-link:hover { background: #666; }
Código 6. Código CSS

Note que ao passar o cursor no elemento "Menu Dropdown", os itens do menu aparecerão logo abaixo. Isso acontece porque os itens da lista estarão “escondidos” e com o uso do hover os itens poderão ser visualizados com a ação do usuário.

Compatibilidade com navegadores

O :hover é suportado em todos os navegadores apresentados na tabela abaixo:

:hover Chrome Mozilla Firefox Edge Opera Safari
4.0 2.0 7.0 9.6 3.1

No Internet Explorer deve ser declarado um <!DOCTYPE> para que o :hover funcione em outros elementos além do elemento <a>.

Artigos relacionados