O problema que você está enfrentando com o menu se torna "não clicável" quando está oculto com display: none
é devido à natureza do CSS. Quando um elemento tem display: none
, ele é completamente removido do fluxo do documento e não pode ser clicado ou interagido de nenhuma forma.
No seu código, a intenção parece ser exibir o menu quando o checkbox (input) é marcado. No entanto, há alguns ajustes necessários:
- O
input
do tipo checkbox precisa de um identificador único e o label
deve estar associado ao input
usando o atributo for
. - O CSS que mostra o menu quando o checkbox está marcado precisa estar correto.
Vou ajustar seu HTML e CSS para garantir que o menu se torne visível quando o checkbox é marcado:
HTML:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Alura Books</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=Poppins:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css">
</head>
<body>
<header class="cabecalho">
<div class="container">
<input type="checkbox" id="menu" class="container__botao">
<label for="menu">
<span class="cabecalho_menu-linha 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>
<a class="container__imagem" href="index.html"><img src="img/Logo.svg" alt="logo da alura books"></a>
</div>
<div class="container">
<a class="container__imagem" href="#"><img src="img/Favoritos.svg" alt="botao favoritos"></a>
<a class="container__imagem" href="#"><img src="img/Compras.svg" alt="botão carrinho de compras"></a>
<a class="container__imagem" href="#"><img src="img/Usuário.svg" alt="botão Usuário"></a>
</div>
</header>
</body>
</html>
CSS:
.cabecalho {
background-color: var(--cor-principal);
display: flex;
justify-content: space-between;
position: relative;
}
.cabecalho_menu-linha {
background-image: url(../img/Menu.svg);
background-repeat: no-repeat;
background-position: center;
display: inline-block;
height: 1.5em;
width: 1.5em;
}
.container {
display: flex;
align-items: center;
}
.container__botao {
display: none;
}
.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 {
background-color: var(--cor-principal);
padding: 1em;
}
.lista-menu__titulo {
color: var(--cor-secundaria);
font-weight: 700;
}
.lista-menu__link {
background: var(--cor-degrade);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
text-decoration: none;
}
@import url(styles/header.css);
:root {
--cor-do-fundo: #EBECEE;
--cor-principal: #FFFFFF;
--cor-secundaria: #EB9B00;
--cor-degrade: linear-gradient(97.54deg, #002F52 35.49%, #326589 165.37%);
--fonte-principal: "Poppins", sans-serif;
}
body {
background-color: var(--cor-do-fundo);
font-family: var(--fonte-principal);
font-size: 1em;
font-weight: 400;
}
Com essas alterações, quando você clicar no ícone do menu, o menu deverá ser exibido.