: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>.