4
respostas

A pseudo-classe 'Hover' não funciona do jeito que deveria

Quando eu coloco a pseudo-classe 'Hover' ela simplesmente não funciona. Só funciona caso eu clique no elemento.

4 respostas

Olá, Jean.

Tudo bem?

Para poder te ajudar eu preciso ver como está o seu código. Poderia compartilhar aqui por gentileza? Pode copiar os códigos HTML e CSS e colar aqui mesmo. Meu muito obrigado.

Sigo aguardando.

Oi, Renan. Estou ótimo, grato. Aqui estão os códigos HTML:

<header class="cabecalho">
        <div class="container">
            <input type="checkbox" id="menu" class="container__botao">
            <label for="menu" class="container__rotulo">    
                <span class="cabecalho__menu-hamburguer container__imagem"></span>
            </label>
            <ul class="lista-menu">
                <li class="lista-menu__titulo">
                    Categorias
                </li>
                <li class="lista-menu__item">
                    <a href="#" class="lista-menu__link">Programação</a>
                </li>
                <li class="lista-menu__item">
                    <a href="#" class="lista-menu__link">Front-End</a>
                </li>
                <li class="lista-menu__item">
                    <a href="#" class="lista-menu__link">Infraestrutura</a>
                </li>
                <li class="lista-menu__item">
                    <a href="#" class="lista-menu__link">Business</a>
                </li>
                <li class="lista-menu__item">
                    <a href="#" class="lista-menu__link">Design & UX</a>
                </li>
            </ul>
            <img src="/img/Logo.svg" alt="Logo da AluraBooks" class="container__imagem">
            <h1 class="container__titulo"><b class="container__titulo--negrito">Alura</b>Books</h1>
        </div>

        <ul class="opcoes">    
            <input type="checkbox" id="opcoes__menu" class="opcoes__botao">
            <label for="opcoes__menu" class="opcoes__rotulo">
                <li class="opcoes__item">Categorias</li>
            </label>

            <ul class="lista-menu">
                <li class="lista-menu__item">
                    <a href="#" class="lista-menu__link">Programação</a>
                </li>
                <li class="lista-menu__item">
                    <a href="#" class="lista-menu__link">Front-End</a>
                </li>
                <li class="lista-menu__item">
                    <a href="#" class="lista-menu__link">Infraestrutura</a>
                </li>
                <li class="lista-menu__item">
                    <a href="#" class="lista-menu__link">Business</a>
                </li>
                <li class="lista-menu__item">
                    <a href="#" class="lista-menu__link">Design & UX</a>
                </li>
            </ul>

            <li class="opcoes__item"><a href="#" class="opcoes__link">Favoritos</a></li>
            <li class="opcoes__item"><a href="#" class="opcoes__link">Minha estante</a></li>
        </ul>

        <div class="container">

            <a href="#"><img src="/img/Favoritos.svg" alt="meus favoritos" class="container__imagem container__imagem-transparente"></a>
            <a href="#" class="container__link">
                <img src="/img/Compras.svg" alt="carrinho de compras" class="container__imagem">
                <p class="container__texto">Minha sacola</p>
            </a>
            <a href="#" class="container__link">
                <img src="/img/Usuário.svg" alt="Meu perfil de usuário" class="container__imagem">
                <p class="container__texto">Meu perfil</p>
            </a>

        </div>    
    </header>

E aqui está o CSS:

.cabecalho__menu-hamburguer {
    height: 50px;
    width: 55px;
    background-position: center;
    background-image: url("../img/Menu.svg");
    display: inline-block;
    background-repeat: no-repeat;
}

.container__botao:checked ~ .container__rotulo > .cabecalho__menu-hamburguer {
    background-image: url("../img/menu-aberto.svg");
}

.container__botao:checked ~ .container__rotulo {
    background: var(--azul-gradiente);
}

.cabecalho {
    background-color: var(--branco);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
}

.container {
    display: flex;
    align-items: center;
}

.container__imagem {
    padding: 0.5em;
}

.lista-menu {
    display: none;
    position: absolute;
    top: 100%;
    width: 60vw;
    background-color: var(--branco);
}

.container__botao, .container__conteudo, .opcoes__botao, .container__texto, .opcoes {
    display: none;
}

.container__botao:checked ~ .lista-menu {
    display: block;
}

.lista-menu__item, .lista-menu__titulo {
    padding: 2em 0 1em 1em;
    text-transform: uppercase;
}

.lista-menu__titulo {
    color: var(--laranja);
    font-weight: 700;
}

.lista-menu__link {
    text-decoration: none;
    background: var(--azul-gradiente);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-transform: uppercase;
}

.container__titulo {
    font-family: var(--fonte-secundaria);
    display: none;
}

@media screen and (min-width: 1024px) {
    .cabecalho__menu-hamburguer, .container__imagem-transparente, .imagem__favoritos, .container__conteudo, .opcoes__botao {
        display: none;
    }

    .opcoes {
        display: flex;
        margin-top: 1em;
    }

    .opcoes__botao:checked ~ .opcoes__rotulo > .opcoes__item {
        color: var(--branco);
    }

    .opcoes__botao:checked ~ .opcoes__rotulo {
        background: var(--azul-gradiente);
    }

    .opcoes__item {
        padding: 1em 1em 2em 1em;
        text-transform: uppercase;
    }

    .opcoes__link {
        text-decoration: none;
        color: var(--preto);
        text-transform: uppercase;
    }

    .container__titulo {
        display: inline;
        font-weight: 400;
        font-size: 30px;
    }

    .container__titulo--negrito {
        font-weight: 700;
    }

    .container__imagem {
        margin: 0 1em;
    }

    .container__conteudo {
        display: inline;
    }

    .cabecalho__link {
        text-decoration: none;
        color: var(--preto);
        text-transform: uppercase;
    }

    .opcoes__botao:checked ~ .lista-menu{
        display: block;
    }

    .lista-menu {
        width: 20vw;
    }

    .lista-menu__item:hover {
        background: var(--azul-gradiente);
    }

    .lista-menu__item:hover > .lista-menu__link {
        -webkit-text-fill-color: var(--branco);
    }
}

@media screen and (min-width: 1728px) {
    .container__texto {
        display: flex;
    }

    .container__link {
        display: flex;
        align-items: center;
        text-decoration: none;
        font-size: 20px;
        color: var(--preto);
    }

    .cabecalho {
        padding: 0 2em;
    }

    .opcoes {
        margin-right: auto;
    }
}

Você está com a ferramenta do desenvolvedor aberta e com aquela opção que deixa a tela com as dimensões responsivas? Se sim, o mouse é substituído por um círculo, que irá simular o dedo do usuário (então nesse caso ele perde a função de hover). Tenta fechar a ferramenta do desenvolvedor e aí testar novamente que acho que irá funcionar.