Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Bug] Menu nao funciona

Olá, já revisei o código e já tentei baixar a imagem de várias maneiras diferentes, mas quando eu clico no menu hambuguer ele abre, muda a cor e a imagem some

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="css/reset.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@10/swiper-bundle.min.css" />
    <link rel="stylesheet" href="css/style.css">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;700&display=swap" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@400;700&display=swap" rel="stylesheet">
    <title>AluraBooks</title>
</head>

<body>
    <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 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__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>

            <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/Sacola.svg" alt="Carrinho de compras" class="container__imagem">
                <p class="container__texto">Minha Sacola</p>
            </a>
            <a href="#" class="container__link">
                <img src="img/Usuario.svg" alt="Meu Perfil" class="container__imagem">
                <p class="container__texto">Meu Perfil</p>
            </a>
        </div>
    </header>
4 respostas
.cabecalho__menu-hamburguer {
    width: 24px;
    height: 24px;
    background-image: url("../../img/Menu.svg");
    background-repeat: no-repeat;
    background-position: center;
    display: inline-block;
}

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

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

.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);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-transform: uppercase;
}

.container__botao,
.container__titulo,
.opcoes,
.container__texto {
    display: none;
}

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

    .container__titulo,
    .container__titulo--negrito {
        font-family: var(--fonte-secundaria);
        font-size: 1.875rem;
    }

    .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 {
        background-color: var(--azul-degrade);
    }

    .lista-menu__item:hover>.lista-menu__link {
        -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);
    }

    .container__texto {
        display: block;
    }

    .cabecalho {
        padding: 0 2em;
    }

    .opcoes {
        margin-right: auto;
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Opa Frederico, tudo certo?

Poderia por gentileza compartilhar o link do seu repositório completo no Github? Dessa forma posso analisar o seu código na totalidade e simular o problema para ajudá-lo de forma mais assertiva.

Fico à disposição.

Tenha um bom dia e bons estudos.

Oi Gabriela, tudo bem, e você?

Posso sim, aqui está o meu repositório. Eu fiquei um bom tempo tentando achar o erro, mas não encontrei.

solução!

Opa Frederico.

Aparentemente seu código está certinho. O erro em questão não está acontecendo, analisando o seu projeto no ar em https://dreffy-0.github.io/AluraBooks/, o problema também não ocorre.

Caso o problema ainda persista, sugiro reescrever a parte referente ao menu. Trocar Menu.svg para Menu-Aberto.svg:

.cabecalho__menu-hamburguer {
    width: 24px;
    height: 24px;
    background-image: url("../../img/Menu-Aberto.svg");

E depois retornar para o Menu normal:

.cabecalho__menu-hamburguer {
    width: 24px;
    height: 24px;
    background-image: url("../../img/Menu.svg");

Pode ser que o projeto que esteja rodando tenha tido um probleminha para identificar o arquivo de primeira.

Fico à disposição.