Na minha página html, tenho um botão com duas div's dentro. A div acima contém um ícone de menu svg, a div abaixo contém o texto do botão. As divs são obrigatoriamente usadas para colocar o ícone e o texto na posição desejada.
Ao passar o mouse sobre o botão, quero isso ao mesmo tempo:
- a cor do texto do botão muda de cinza para azul
- as opções de filtro para a imagem ficam ativas para que o ícone cinza mude para um ícone azul.
Atualmente, tenho definições de CSS como as abaixo, que funcionam no mouseover do botão e no mouseover do primeiro div (svg) de forma independente.
Quando defino um filtro para o botão completo, de modo que a cor do texto e da imagem mudem ao mesmo tempo quando o mouse passar sobre o botão, também a cor de fundo da imagem será filtrada. Claro que isso é indesejado.
É possível atingir meu objetivo usando apenas CSS?
Minha marcação HTML:
<button class="icon-button" @onclick="@(() => { Connect_to_MAE();})">
<div><img class="svg_icon" src="images/abc.svg" width="36" height="36"></div>
<div>Connect</div>
</button>
Meu CSS:
.icon-button:hover {
color: cornflowerblue; /* changes text color */
}
.svg_icon:hover {
filter: sepia(100%) hue-rotate(190deg) saturate(500%); /* changes just icon color */
}
Basta passar o mouse sobre ele e alterar suas propriedades de acordo com suas necessidades.