2
respostas

[Dúvida] Cabeçalho

Uma dúvida, a respeito se pode ser um bug, um problema de navegador ou o que pode ter acontecido. O padding: 1em no .container__imagem não está funcionando, quando aplicado o padding: 1em o meu cabeçalho fica da seguinte forma:

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

E quando substituido o padding: 1em e colocando por exemplo margin-left: 1em, o resultado fica parecido ao mostrado em video: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O mesmo acontece se utilizando 1px ao invés de 1em no padding. Gostaria de entender o porque desse comportamento, e também porque no exemplo do video está tudo correto utilizando padding: 1em e quando aplico o mesmo não dá certo.

Detalhe que utilizando o padding: 1em se em telas maiores está funcionando corretamente, porem nesse tamanho de dispositivo mostrado em vídeo, não funciona conforme o video.

2 respostas

Se o padding aplicado ao elemento .container__imagem está afetando o cabeçalho, pode ser que o elemento .container__imagem esteja afetando o layout dos elementos acima dele na hierarquia. Isso pode acontecer se o elemento .container__imagem tiver um posicionamento absoluto ou relativo, ou se tiver uma altura muito grande.

Para corrigir esse problema, você pode tentar adicionar um espaçamento extra ao elemento acima do .container__imagem ou ajustar a posição do .container__imagem. Se o problema persistir, pode ser um bug ou problema específico do navegador, e você pode tentar testar o layout em diferentes navegadores para ver se o problema ocorre em todos eles.

Uma outra opção é usar o box-sizing: border-box no elemento .container__imagem, o que fará com que o padding seja incluído na largura e altura do elemento em vez de adicioná-lo ao tamanho total do elemento. Isso pode ajudar a evitar problemas de layout causados pelo padding. Por exemplo:

.container__imagem {
  box-sizing: border-box;
  padding: 1em;
}

Obrigado pela resposta Gustavo, a minha dúvida é porque no exemplo em video do curso funciona normalmente, utilizando o mesmo navegador.

Se voce dar uma olhada no meu código, está igual:

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

.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;
}
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>AluraBooks</title>
    <link rel="stylesheet" href="reset.css">
    <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-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>

    <main>

    </main>

    <footer>

    </footer>
</body>
</html>