Menú hamburguesa sólo con CSS



¡Hola chicos! 
Una vez armada nuestra barra de navegación responsive, ir al post, vamos a ver como armar un menú hamburgues básico sólo con CSS.

HTML

Arranquemos con el código básico para el menú:
<nav>
  <input type="checkbox" id="menu">
  <label for="menu"> Menu </label>
  <ul>
    <li>Link 1</li>
    <li>Link 2</li>
    <li>Link 3</li>
    <li>Link 4</li>
  </ul>
</nav>

A tener en cuenta:

  • Asignar un id al input. <input type="checkbox" id="menu" >
  • Hacer referencia al id del input en el for del label.<labelfor="menu"> Menu </label>

CSS


Ahora con CSS, vamos a dar la funcionalidad a nuestro menú:

  1. Ocultamos la lista de navegación ul:{display: none;}
  2. Ahora lo importante, con input:checked  ~ ul modificamos el estilo de la lista ul cuando el checkbox esté seleccionado (checked), por lo que allí es dónde modificamos el display de la lista, logrando que se visualice cuando el checkbox está marcado.
ul{
  displaynone;
}

input:checked  ~ ul{
  display:block;
}

Con ese simple código logramos lo siguiente:


Dando estilo

Ahora lo que queda es dar estilo a nuestro menú hamburguesa:
1. Ocultamos el input.
 input {
  displaynone;
}

2. Modificamos el label y agregamos una imágen o icono de "hamburguesa".
  <label for="menu"> ☰ </label>

label {
  box-sizingborder-box;
  displayinline-block;
  border1px solid black;
  border-radius5px;
  width30px;
  height30px;
  line-height30px;
  font-weightbold;
  text-aligncenter;
  user-selectnone;
}

3. Damos estilos a los elementos de la lista.
li {
  displayblock;
  backgroundlightgrey;
  margin0;
  padding10px;
  list-stylenone;
  border-bottom1px solid grey;
}

Resultado final:

See the Pen Menu hamburguesa - solo CSS by tognola (@tognola) on CodePen.

Comentarios

Entradas populares de este blog

¿Cómo usar Google Fonts?