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

[Dúvida] Sem interação com o menu quando oculto o checkbox

Ao final da aula, quando ela coloca o display: none na class container__botao, ele não está interativo no meu código, não está mais aparecendo a lista com os itens quando clico nele.

Não encontrei solução nos tópicos aqui.

Segue o código:

index.html

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>AluraBooks</title>
    <link rel="stylesheet" href="reset.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=Inter:wght@400;700&family=Krona+One&family=Montserrat:wght@400;600&family=Poppins:wght@300;400;500;700&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="styles.css">
</head>

<body>
    <header class="cabecalho">
        <div class="container">
            <input type="checkbox" id="=menu" class="container__botao">
            <label for="menu">
                <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">
        </div>
        <div class="container">
            <a href="#"><img src="img/Favoritos.svg" alt="Meus favoritos" class="container__imagem"></a>
            <a href="#"><img src="img/Compras.svg" alt="Carrinho de compras" class="container__imagem"></a>
            <a href="#"><img src="img/Usuário.svg" alt="Meu perfil" class="container__imagem"></a>
        </div>
    </header>
    
</body>

</html>

styles.css

@import url("styles/header.css");

:root {
    --cor-de-fundo: #EBECEE;
    --branco: white ;
    --laranja: #EB9B00;
    --azul-degrade: linear-gradient(97.54deg, #002F52 35.49%, #326589 165.37%);
    --fonte-principal: "Poppins";
}

body {
    background-color: var(--cor-de-fundo);
    font-family: var(--fonte-principal);
    font-size: 16px;
    font-weight: 400;
}

header.css

.cabecalho__menu-hamburguer {
    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: 0.5em;
}

.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;
}
2 respostas
solução!

Olá Dev, tudo bem com você?

Analisando seu código, percebi que o problema está no HTML. Na classe container__botao, foi adicionado um caractere de igual (=) extra no atributo id do input, tornando-o inválido. Código com erro:

<input type="checkbox" id="=menu" class="container__botao">

Para corrigir o problema, você deve remover o caractere de igual (=) extra no atributo id do input. O atributo id deve ser escrito corretamente como na aula. Código corrigido:

<input type="checkbox" id="menu" class="container__botao">

Com essa correção, o botão do menu hamburguer com a classe container__botao funcionará corretamente, permitindo que a lista de categorias seja exibida quando o botão é clicado. Espero ter conseguido ajudar, qualquer dúvida estou à disposição.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Obrigado pela ajuda, Maria Eduarda. Realmente era isso mesmo, falta de atenção minha. Obrigado mais uma vez!