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

Após remover checkbox, menu hamburger fica próximo demais da borda

Não consigo entender porque o menu hamburger fica encostado na borda após remover checkbox. Os outro ícones também não se posicionam igual na aula. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Index.html

<!DOCTYPE html>
<html lang="en">
<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=Pacifico&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-haburger 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</a>
                </li>
                <li class="lista-menu__item">
                    <a href="#" class="lista-menu__link">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/Usuario.svg" alt="Menu usuario" class=container__imagem></a>
        </div> 

    </header>
    
</body>
</html>

Header.css

.cabecalho__menu-haburger {
    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;
}

Styles.css

@import url(header.css);

:root {
    --cor-de-fundo: #ebecee;
    --branco: #FFFFFF;
    --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;
}

h1 {
    background-color: white;
}
4 respostas
solução!

Oi, Diego. Tudo bem?

Analisando o código, eu notei que houve alguns erros de digitação no HTML ao declarar as classes. Note, por exemplo, no elemento <header>:

<header class=cabecalho>

A estrutura está quase certa, falta somente as aspas em volta do nome da classe, da seguinte forma:

<header class="cabecalho">

Isso se repete em algumas outras classes pelo HTML. Existe uma extensão muito boa chamada HTMLHint que fica de olho no HTML e alerta quando há inconsistências no código.

tela do vscode mostrando a extensão htmlhint

Infelizmente os avisos são em inglês, mas é possível copiar e usar algum recurso de tradução para poder compreender, na imagem abaixo, a extensão alerta que o nome das classes devem estar entre aspas (double quotes). demonstrando o funcionamento da extensão mencionada acima

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Olá Mike, muito obrigado, isso ajudou bastante, e obrigado pela dica da extensão.

No mesmo tópico, estou tentando deixar os icones da direita mais próximos uns dos outros, como no curso, mas não encontro meios de aproxima-los. Voce saberia dizer o que está errado? Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Oi, Diego.

Testando o seu código, não percebi problemas no espaçamento dos elementos. Pode ser algo ligado ao tamanho da tela que você está simulando, o que é bem comum no desenvolvimento responsivo. Para confirmar, experimente testar em outras resoluções.

Se ainda assim o problema persistir, você pode ajustar o padding dos elementos com o código abaixo para reduzir os espaçamentos:

.container:nth-child(2) .container__imagem {
    padding: 0.5em;
}

demonstrando a aplicação de estilos com base no seletor mencionado

Faça os testes e me retorne, por favor :)

Olá Mike. Muito obrigado, isso resolveu o problema! Insira aqui a descrição dessa imagem para ajudar na acessibilidade