Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Preenchimento de background no hover

Boa noite a todos, estou com uma dúvida em questão de um preenchimento de um elemento. Ao fazer o "hover" (como o exemplo na print) ao inves de preencher por completo, está preenchendo somente a palavra, e não a sua linha inteira, onde está meu erro e como corrijo isso?

HTML:

       <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">Programacao</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>

CSS:

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

.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: 1em;
}

.lista-menu {
    display: none;
    position: absolute;
    top: 100%;
    width: 60vw;
}

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

.lista-menu__titulo, .lista-menu__item {
    padding: 1em;
    background-color: var(--branco);
}

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

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

.container__botao {
    display: none;
}

.container__titulo {
    display: none;
}

.opcoes {
    display: none;
}

.container__texto {
    display: none;
}

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

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

@media screen and (min-width: 1024px) {

    .container__titulo, .container__titulo--negrito {
        margin-top: 0.25em;
        font-family: var(--fonte-secundaria);
        font-size: 30px;
    }

    #container__perfil {
        margin: 0 3.5em 0 0;
    }

    #container__compras {
        margin: 0 2.5em 0 0
    }

    #cabecalho__imagem {
        margin-left: 4em;
        padding: 1em 10px 1em 1em;
    }

    .container__titulo {
        font-weight: 400;
        display: block;
    }

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

    .opcoes {
        display: flex;
    }

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

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

    .container__imagem-transparente {
        display: none;
    }

    .cabecalho__menu-hamburguer {
        display: none;
    }

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

    .opcoes__botao {
        display: none;
    }

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

    .lista-menu__item:hover > .lista-menu__link {
        background: var(--azul-degrade);
        -webkit-text-fill-color: var(--branco);
        text-decoration: none;
    }
}

@media screen and (min-width: 1728px) {
    .container__link {
        display: flex;
        align-items: center;
        text-decoration: none;
        color: var(--preto);
    }

    .cabecalho {
        padding: 0 2em;
    }

    .opcoes {
        margin: 0 auto 0 2em;
    }

    .container__texto {
        display: block;
        margin-right: 1.5em;
    }

    #container__compras, #container__perfil {
        margin: 0;
    }
}

Print: https://cdn1.gnarususercontent.com.br/1/1266412/daf15c2d-7b46-419d-9eb1-83155a0c537f.png

1 resposta
solução!

Olá, Estudante.

Tudo bem?

Deve está acontecendo algum conflito no código, parece que ele está aplicando o :hover para os links e não para os itens da lista. Tenta criar um :hover só para os itens:

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

Espero que funcione.

Qualquer dúvida manda aqui de novo. Valeu :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software