Neste artigo você vai aprender a como fazer o efeito de hover em um elemento afetar outro, por meio de CSS puro e é claro de uma forma fácil e rápida!

efeito hover de um elemento afetar outro capa

Fala programador(a), tudo bem? Bora aprender coisa nova! 😀

A ideia por trás de afetar um outro elemento, que não seja o que colocamos o mouse pelo hover é simples

Precisamos identificar o elemento de hover, como fazer normalmente

Mas seguido a ele, colocamos a classe/id do elemento que realmente precisa mudar o estilo, isso se for filho do elemento

Por exemplo se for um ‘gêmeo’, ou seja no mesmo nível, devemos colocar um + entre os seletores

Assim conseguimos realizar nosso objetivo, veja um exemplo:

<!DOCTYPE html>
<html>
<head>
    <title>Efeito de hover em um elemento afetar outro</title>
    <meta charset="utf-8">
</head>
<body>
    <div id="elemento"></div>
    <div id="elemento-hover"></div>
</body>
</html>

Criamos dois elementos distintos, e a ideia aqui vai ser ativar o hover no #elemento-hover passando o ponteiro do mouse por #elemento

Quer se especializar em Desenvolvimento Web? Veja o nosso catálogo de cursos.

Então vamos ao CSS:

div {
    width: 50px;
    height: 50px;
    margin: 30px;
}

#elemento {
    background-color: red;
}

#elemento-hover {
    background-color: blue;
}

#elemento:hover + #elemento-hover {
    background-color: magenta;
}

Neste caso, o resultado será este:

efeito hover de um elemento afetar outro ex1

Este foi um caso de tags no mesmo nível, agora vejamos uma com um hover em uma tag pai, aplicando o efeito na tag filha:

<!DOCTYPE html>
<html>
<head>
    <title>Efeito de hover em um elemento afetar outro</title>
    <meta charset="utf-8">
</head>
<body>
    <div>
        <p id="p-hover">Testando hover</p>
        <p>Este não vai ter hover</p>
    </div>
</body>
</html>

Agora o CSS:

div {
    margin: 50px;
    width: 500px;
}

div:hover #p-hover {
    color: red;
    font-weight: bold;
    border-bottom: 2px dotted yellow;
    background-color: #000;
}

O resultado do hover em qualquer lugar da div, é este:

efeito hover de um elemento afetar outro ex2

E desta maneira conseguimos ativar hover em um elemento e aplicando o estilo (CSS) em outro! 🙂

Conclusão

Neste artigo vimos como fazer o efeito hover em um elemento afetar outro

Primeiro precisamos identificar o parentesco do elemento que vai ativar o hover

Depois criar uma regra de CSS que ative o hover no elemento que deve ativá-lo

Seguido de como este elemento se relaciona com o elemento que deve mudar o estilo, caso seja um sibling/irmão você pode adicionar um +, e assim por diante

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

Subscribe
Notify of
guest

3 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Larissa Jesus da Silva

Gostei demais dessa explicação, simples e prática. Na verdade só encontrei conteúdo relacionado a isso nesse site.

Battisti

valeu Larissa!

Lucas

Interessante mas eu não conseguir fazer o elemento mudar quando eu inverto e coloco o hover no elemento-hover. Como posso fazer?