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

[Dúvida] menu catgoria com problemas de espaçamento

Boa noite,

  1. Ao seguir o passo a passo da aula eu fiquei com um problema de espaçamento no menu categoria tanto no hambúrguer (mobile )quanto em telas com mais de 1024px.

  2. Fora que apareceram algumas linhas de divisão depois da palavra programação a linha não aparece mais.

A palavra "Designer & UX fica prejudicadamenu Hamburguer

Olhei na ferramenta inspecionar e mudei o padding da classe .lista-menu__item de 1em para 0.7 em e funcionou, porém fica uma dúvida de sempre, pq na aula o da professor não da erro e o nosso apresenta erro ?

Outro ponto que observei tbm que que o carrossel de pontos fica por cima do menu, como colocar o carrossel de "bolinhas" para trás do menu ?

header.css

8 respostas

Não deu para colocar na outra parte, segui o html.

https://photos.app.goo.gl/F9oivCj2eYx4bjGMA (link do HTML)

Segue o link de todo o código do projeto

https://drive.google.com/file/d/1fEboJ4cRwlQo3NQuqN3Hb9jnNe6eKBHk/view?usp=drive_link

Oi, Marcelo! Tudo bom?

Pedi acesso ao drive pra poder visualizar o código e testar melhor o que pode estar acontecendo ^^

https://drive.google.com/file/d/1fEboJ4cRwlQo3NQuqN3Hb9jnNe6eKBHk/view?usp=sharing

Segue o link sem restrição de acesso.

Opa! Vamos ver passo a passo dos problemas que você relatou:

Menu hamburguer ficando pra trás

Para o menu hamburguer ficar na frente dos outros elementos você pode usar a propriedade z-index (que inclusive é bem utilizada nesses casos). Dessa maneira:

.lista-menu {
    display: none;
    position: absolute;
    top: 100%;
    width: 60vw;
    z-index: 2;
}

O z-index é uma propriedade do CSS que define a ordem de empilhamento de um elemento posicionado e seus descendentes. Ele funciona como uma coordenada no eixo Z, que representa a profundidade dos elementos na tela. Um elemento com um z-index maior fica na frente de um elemento com um z-index menor. Assim fazendo o menu ficar na frente dos outros.

Espaçamento indesejado entre itens da lista

Testei aqui e o problema não é no código em si, e sim algo que o navegador faz quando estamos vendo com o zoom diferente na ferramenta do desenvolvedor. Note que você está vendo o projeto com o 75%:

Visualização do projeto a partir da ferramenta do desenvolvedor, onde o cabeçalho dela possui as dimensões que a página irá aparecer, incluindo um seletor de porcentagem com o valor de 75%

Mas se colocarmos em 100%, esse espaçamento vai desaparecer:

Visualização do projeto a partir da ferramenta do desenvolvedor, onde o cabeçalho dela possui as dimensões que a página irá aparecer, incluindo um seletor de porcentagem com o valor de 100%

Inclusive, ao fazer o deploy da aplicação no Github ou Vercel e abrir seu site esse espaçamento não irá aparecer independentemente da porcentagem que está colocada. Então acredito que seja algum comportamento estranho que só aconteça localmente mesmo.


Pra ambas situações seu código está correto. A questão do z-index é um extra e as margens não acontecem quando publica o projeto. Espero ter ajudado!

Monica, uma outra dúvida que me surgiu foi que quando eu expando a tela de mobile para desktop (1024px) o menu hambúrguer se estiver selecionado ele não some, com que posso ajustar essa parte ?

Essa é outra situação que poderiamos lidar de diversas maneiras, inclusive usando JavaScript. Como no caso do curso só estamos vendo HTML e CSS, uma ideia é colocar dentro do media query @media screen and (min-width: 1024px) { (+- linha 73 do arquivo header.css) o seguinte:

 .container__botao:checked~.lista-menu {
        display: none;
    }

Assim, quando a tela chegar no tamanho 1024px e o menu mobile estiver aberto, ele irá desaparecer. Quando diminuirmos a tela novamente, caso ele tenha sido selecionado antes, voltará com ele aberto. Optei por essa maneira por não termos como remover o checked do input só com CSS.

solução!

Obrigado pelo Apoio Mônica.