3
respostas

Cabeçalho na tela de 1024px não fica totalmente alinhado

Estou com um problema de alinhamento nos itens do cabeçalho. A < ul > que fiz com os itens 'categorias', 'favoritos' e 'minha estante' não estão alinhados exatamente no centro como o da professora e quando abro a opção categorias a lista não aparece alinhada com o texto 'categorias'. Além disso, me parece que o titulo alura books está muito junto do logo no cabeçalho.

Aqui está o código completo do Header:

<header class="cabecalho">
        <div class="container">
            <input type="checkbox" id="menu" class="containerBotao">
            <label for="menu">
            <span class="cabecalhoMenuHamburger containerImagem"></span>
            </label>
            <ul class="listaMenu">
                <li class="listaMenuTitulo">Categorias</li>
                <li class="listaMenuItem">
                    <a href="#" class="listaMenuLink">Programação</a>
                </li>
                <li class="listaMenuItem">
                    <a href="#" class="listaMenuLink">Front-end</a>
                </li>
                <li class="listaMenuItem">
                    <a href="#" class="listaMenuLink">Infraestrutura</a>
                </li>
                <li class="listaMenuItem">
                    <a href="#" class="listaMenuLink">Business</a>
                </li>
                <li class="listaMenuItem">
                    <a href="#" class="listaMenuLink">Design & UX</a>
                </li>
            </ul>
            <img src="img/Logo.svg" alt="Logo da AluraBooks">
            <h1 class="containerTitulo"><b class="containerTituloNegrito">Alura</b>Books</h1>

            <ul class="opcoes">
                <input type="checkbox" id="opcoesMenu" class="opcoesBotao">
                <label for="opcoesMenu">
                    <li class="opcoesItem">CATEGORIAS</li>
                </label>

                <ul class="listaMenu">
                    <li class="listaMenuItem">
                        <a href="#" class="listaMenuLink">Programação</a>
                    </li>
                    <li class="listaMenuItem">
                        <a href="#" class="listaMenuLink">Front-end</a>
                    </li>
                    <li class="listaMenuItem">
                        <a href="#" class="listaMenuLink">Infraestrutura</a>
                    </li>
                    <li class="listaMenuItem">
                        <a href="#" class="listaMenuLink">Business</a>
                    </li>
                    <li class="listaMenuItem">
                        <a href="#" class="listaMenuLink">Design & UX</a>
                    </li>
                </ul>

                <li class="opcoesItem"><a href="#" class="opcoesLink">FAVORITOS</a></li>
                <li class="opcoesItem"><a href="#" class="opcoesLink">MINHA ESTANTE</a></li>
            </ul>
        </div>
        <div class="container">
            <a href="#"><img src="img/Favoritos.svg" alt="Meus favoritos" class="containerImagem containerImagemTransparente"></a>
            <a href="#"><img src="img/Sacola.svg" alt="Carrinho de compras" class="containerImagem"></a>
            <a href="#"><img src="img/Usuario.svg" alt="Meu perfil" class="containerImagem"></a>
        </div>
    </header>
3 respostas

Aqui está o código da Media Query:

.containerBotao {
    display: none;
}

.containerTitulo {
    display: none;
}

.opcoes {
    display: none;
}

@media screen and (min-width: 1024px){
    
    .containerTitulo, .containerTituloNegrito {
        font-family: var(--fonte-secundaria);
        font-size: 30px;
    }

    .containerTitulo {
        font-weight: 400;
        display: block;
    }

    .containerTituloNegrito {
        font-weight: 700;
        
    }

    .opcoes {
        display: flex;
    }

    .opcoesItem {
        padding: 0 1em;
    }

    .opcoesLink {
        text-decoration: none;
        color: var(--preto);
    }

    .containerImagemTransparente {
        display: none;
    }

    .cabecalhoMenuHamburger {
        display: none;
    }

    .opcoesBotao:checked ~ .listaMenu {
        display: block;
        width: auto;
    }

    .opcoesBotao {
        display: none;
    }
}

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

Olá, Nathan.

Tudo bem?

Faltou compartilhar o código correto CSS, como você compartilhou o HTML do <header>, você deveria compartilhar o código CSS do arquivo header.css completo também, assim quem for ajudar consegue testar essa parte.

Para centralizar, tenta primeiro utilizar o inspecionar do navegador para ver o tamanho dos elementos e suas disposições, o que faz centralizar de fato, é a propriedade justify-content: space-between; do "display flex", ela precisa estar no <header> no meu caso é na classe CSS .cabeçalho, e tem que ser fora do @media do media querie.

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

Espero ter ajudado. Qualquer dúvida manda aqui. Valeu.

Ok, vou deixar meu código do CSS aqui:

.cabecalhoMenuHamburger {
    width: 24px;
    height: 24px;
    background-image: url(../img/Menu\ \(1\).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;
}

.containerImagem{
    padding: 1em;
}

.listaMenu {
    display: none;
    position: absolute;
    top: 100%;
    width: 60vw;
}

.containerBotao:checked~.listaMenu {
    display: block;

}

.listaMenuTitulo, .listaMenuItem {
    padding: 1em;
    background-color: var(--branco);
}

.listaMenuTitulo {
    color: var(--laranja);
    font-weight: 700;
}

.listaMenuLink {
    background: var(--azul-degrade);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-transform: uppercase;
}

.containerBotao {
    display: none;
}

.containerTitulo {
    display: none;
}

.opcoes {
    display: none;
}

@media screen and (min-width: 1024px){
    
    .containerTitulo, .containerTituloNegrito {
        font-family: var(--fonte-secundaria);
        font-size: 30px;
    }

    .containerTitulo {
        font-weight: 400;
        display: block;
    }

    .containerTituloNegrito {
        font-weight: 700;
        
    }

    .opcoes {
        display: flex;
    }

    .opcoesItem {
        padding: 0 1em;
    }

    .opcoesLink {
        text-decoration: none;
        color: var(--preto);
    }

    .containerImagemTransparente {
        display: none;
    }

    .cabecalhoMenuHamburger {
        display: none;
    }

    .opcoesBotao:checked ~ .listaMenu {
        display: block;
        width: auto;
    }

    .opcoesBotao {
        display: none;
    }
}

Além disso vou deixar também um print da janela "Inspecionar elemento"

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

Já tentei mexer em tudo que imaginei que pudesse ser, mas mesmo assim sem sucesso :(