O JavaScript revolucionou a interação web, mas o CSS também evoluiu significativamente. Desafio recente: criar um menu responsivo sem JavaScript. Veja o resultado e como foi feito!

Visualize o resultado aqui.

O código é direto, destacando o uso crucial do checkbox para controlar o estado do menu. A hierarquia do HTML é essencial; o checkbox e o container do menu precisam estar no mesmo nível.

<menu>
  <label for="menu-toggle">
    <div></div>
    <div></div>
    <div></div>
  </label>
  <input type="checkbox" name="action-menu" id="menu-toggle" />
  <nav>
    <ul>
      <li><a href="/home">Home</a></li>
      <li><a href="/contato">Contato</a></li>
      <li><a href="/fale-conosco">Fale Conosco</a></li>
      <li><a href="/nossas-lojas">Nossas Lojas</a></li>
      <li><a href="/sobre-a-empresa">Sobre a Empresa</a></li>
    </ul>
  </nav>
</menu>

No CSS, o uso do til (~) permite uma condição IF: “se menu-toggle está ativo, encontre o irmão nav e aplique left 0”. O posicionamento absoluto do nav é crucial, transicionando de -100% para 0 quando o checkbox é ativado.

 

/* Estado Ativo */
#menu-toggle:checked ~ nav {
  left: 0;
}

/* Estado Inicial */
nav {
  position: absolute;
  max-width: 300px;
  height: 100%;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  top: 50px;
  left: -100%;
  transition: 0.3s all linear;
}

Espero que aprecie; em breve, mais variações desse menu! Até lá! 🚀

 

Outros links: