Como construir uma barra de navegação responsiva com Flexbox

Flexbox é perfeito para navegação responsiva

Flexbox é um módulo de layout versátil com o qual podemos criar layouts unidimensionais que requerem flexibilidade, como menus responsivos. Usando as propriedades de ordenação, alinhamento e dimensionamento do flexbox, podemos construir barras de navegação que adaptam seus layouts ao tamanho da janela de visualização, mantendo o contorno HTML lógico e acessível.

Neste tutorial, veremos como criar uma barra de navegação responsiva com flexbox. Nossa navegação flexbox terá três layouts diferentes, dependendo do tamanho da janela de visualização:

  1. a layout móvel em que apenas o logotipo e um botão de alternância estarão visíveis por padrão e os usuários podem abrir e fechar o menu usando o botão de alternância,
  2. a layout de tablet no qual mostraremos dois botões de call to action entre o logotipo e a alternância no estado padrão e o resto do menu permanecerá alternável,
  3. a layout da área de trabalho em que todos os itens do menu, exceto o botão de alternância, ficarão visíveis na tela.

Usaremos consultas de mídia para detectar o tamanho da janela de visualização do navegador do usuário. Nossa barra de navegação responsiva priorizará os dispositivos móveis, portanto, criaremos primeiro o layout para dispositivos móveis. Em seguida, adicionaremos o CSS específico para tablet e desktop usando min-width consultas de mídia.

A barra de navegação também terá um submenu suspenso baseado em JavaScript que abre e fecha quando o usuário clica no item do menu pai.

Veja como ficará o menu no celular:

Menu móvel com flexboxMenu móvel com flexboxMenu móvel com flexbox

Aqui está a versão para tablet:

Menu tablet com flexboxMenu tablet com flexboxMenu tablet com flexbox

E é assim que ficará no desktop:

Menu da área de trabalho com flexboxMenu da área de trabalho com flexboxMenu da área de trabalho com flexbox

Você também pode testar, bifurcar e brincar com a demonstração interativa no CodePen:

Novo no Flexbox?

Se você não está acostumado com o flexbox ou precisa de uma atualização, estes guias para iniciantes lhe darão todas as habilidades necessárias para concluir este tutorial:

1. Crie o HTML

O HTML é um simples

Deixe uma resposta