Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] operador ~ não funciona

Boa noite!

Quando uso o operador ~ no CSS ele reconhece que existe um erro no código e o menu hamburguer não funciona. Não sei se a imagem vai funcionar, então vou colar o código aqui também. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

.cabecalho { background: var(--branco); display: flex; justify-content: space-between; align-items: center; }

.cabecalho__menu-hamburguer { width: 24px; height: 24px; background-image: url("../img/Menu.svg"); background-repeat: no-repeat; background-position: center; display: inline-block; }

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

1 resposta
solução!

Oi Queren, tudo bem?

Tem algumas diferenças do seu código para aula.

Por exemplo está faltando position: relative; na class do cabecalho.

E a class docontainer__botao é preciso escrever do jeitinho que está na aula (não pode ter um espaço entre eles), pois às vezes isso pode trazer erros no seu código, ajuste para:

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

Vou mandar aqui o CSS completo do Menu Hamburguer:

.cabeçalho__menu-hamburguer {
    width: 24px;
    height: 24px;
    background-image: url("../img/Menu.svg");
    background-repeat: no-repeat;
    background-position: center;
    display: inline-block;
}

.cabeçalho {
    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;
}

Importante:

Se não funcionar, verifica se está chamando as classes no CSS da mesma forma que escreveu no HTML.

Um abraço e bons estudos.