1
resposta

Menu Categoria não muda de cor na versão do Tablet

Boa tarde, eu já tentei várias vezes refazendo a aula mas não consigo deixar o menu categoria mudar de cor quando clica nele na versão do tablet. Eu não estou conseguindo achar o erro, poderiam me ajudar?

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

.container__botão:checked ~ .container__rotulo > .cabeçalho__menu-hamburguer{
background-image: url("../img/Menu\ Aberto.svg");
}

.container__botão:checked~.container__rotulo {
background: var(--azul-degrade);
}

.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; /* Possível causa do menu ficar em cima das bolinhas do menu carrossel*/
top:100%;
width: 60vw;
}

.container__botão:checked~.lista-menu{
display: block;
}

.lista-menu__titulo, .lista-menu__item{
padding: 1em;
background-color: var(--branco);
}

.lista-menu__titulo {
background-color: var(--branco);
color: var(--laranja);
font-weight: 700;
padding: 1em;
border-bottom: none; /* evita a linha embaixo do título */
}

.lista-menu__link {
background: var(--azul-degrade);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
text-transform: uppercase;
border-bottom: none;
}

.container__botão{
display: none;
}

.container__titulo{
display: none;
}

/* Fazer o menu de opções sumir quando diminuir a tela */
.opções{
display: none;
}

.container__texto{
display:none;
}

/* Tamanho de tela no Tablet */
@media screen and (min-width: 1024px) {
.container__titulo,
.container__titulo--negrito {
font-family: var(--font-secundaria);
font-size: 30px;
}
.container__titulo {
font-weight: 400;
display: block;
}
.container__titulo--negrito {
font-weight: 700;
}

.opções {
display: flex;
}

.opções__item {
  padding: 0 1em;
  text-transform: uppercase;

}

.opções__link{
text-decoration: none;
color: var(--preto);
}
 
/* Fazer o ícone do favoritos desaparecer */
.container__imagem-transparente{
    display: none;
}

/* Fazer o menu hamburguer desaparecer */
.cabeçalho__menu-hamburguer{
    display: none;
}

.opções__botão:checked~.lista-menu{
    display: block;
    width: auto;
    z-index: 999;
}

.opções__botão{
    display: none;
}

.opções__botão:checked ~ .opções__rotulo > .opções__item {
background: var(--azul-degrade);
color: var(--branco);
}

}

@media screen and (min-width:1728px){
.container__link{
display: flex;
align-items: center;
text-decoration: none;
color: var(--preto);
}

.cabeçalho{
    padding: 0 2em;
}

.opções{
    margin-right: auto;
}

.container__texto{
    display: block;
}

}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Opa, Pedro! Tudo certo?

Esse é um daqueles problemas clássicos que a gente fica caçando no CSS e, muitas vezes, o detalhe está no HTML!

Dei uma olhada no seu código CSS e a regra que você criou para o tablet está perfeita:

.opções__botão:checked ~ .opções__rotulo > .opções__item {
    background: var(--azul-degrade);
    color: var(--branco);
}

Isso está certinho.

Acredito que o problema está no seu arquivo index.html. Para esse seletor CSS funcionar, ele depende exatamente da estrutura e das classes que a aula pedia para adicionar.

O erro mais comum é esquecer de adicionar a classe opções__rotulo na tag <label> que fica em volta do item "Categorias".

Confira seu HTML

Dá uma olhada no seu index.html (perto da linha 48, como a aula cita) e veja se está assim:

<input type="checkbox" id="opções-menu" class="opções__botão">
<label for="opções-menu" class="opções__rotulo">  <li class="opções__item">Categorias</li>
</label>

Se o seu <label> estiver sem a classe opções__rotulo, o seletor CSS (~ .opções__rotulo) não consegue encontrar o elemento e, por isso, o estilo não é aplicado.

Dá uma conferida lá no seu index.html e me diz se era isso!

Se o erro persistir, por favor, compartilha seu código completo comigo.

Bons estudos!

Sucesso

Imagem da comunidade