Como criar: Barra de navegação superior responsiva

Aprenda a usar CSS e JavaScript para criar uma barra de navegação superior responsiva.

Menu de navegação superior responsivo

Ajuste o tamanho da janela do navegador para ver como o menu de navegação responsivo funciona:

Experimente você mesmo

Criar menu de navegação superior responsivo

Primeiro passo - Adicionar HTML:

/* Carregar a biblioteca de ícones para exibir o menu hamburguer na tela pequena */
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="topnav" id="myTopnav">
  <a href="#home" class="active">Início</a>
  <a href="#news">Notícias</a>
  <a href="#contact">Contato</a>
  <a href="#about">Sobre</a>
  <a href="javascript:void(0);" class="icon" onclick="myFunction()">
    <i class="fa fa-bars"></i>
  </a>
</div>

Os links com classe "icon" são usados para abrir e fechar o menu de navegação na tela pequena.

Segundo passo - Adicionar CSS:

/* Adicionar cor de fundo preta ao menu de navegação superior */
.topnav {
  background-color: #333;
  overflow: hidden;
}
/* Definir o estilo dos links no menu de navegação */
.topnav a {
  float: left;
  exibir: bloco;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  decoration-texto: nenhum;
  tamanho-fonte: 17px;
}
/* Mudar a cor do link ao passar o mouse sobre ele */
.topnav a:hover {
  cor-fundo: #ddd;
  cor: preto;
}
/* Adicionar uma classe ativa para destacar a página atual */
.topnav a.active {
  cor-fundo: #04AA6D;
  cor: branca;
}
/* Ocultar o link usado para abrir e fechar a navegação superior na tela pequena */
.topnav .icon {
  exibir: nenhum;
}

Adicionar consulta de mídia:

/* Quando a largura da tela for menor que 600 pixels, ocultar todos os links exceto o primeiro ("Home"). Exibir o link que abre e fecha a navegação superior (.icon) */
@media screen and (largura-máxima: 600px) {
  .topnav a:not(:first-child) {exibir: nenhum;}
  .topnav a.icon {
    flutuante: direita;
    exibir: bloco;
  }
}
/* Quando o usuário clicar no ícone, o JavaScript adicionará a classe "responsive" ao topnav. Esta classe faz com que o topnav pareça melhor em telas pequenas (exibe os links verticalmente em vez de horizontalmente) */
@media screen and (largura-máxima: 600px) {
  .topnav.responsive {posição: relativa;}
  .topnav.responsive a.icon {
    posição: absoluta;
    direita: 0;
    topo: 0;
  }
  .topnav.responsive a {
    flutuante: nenhum;
    exibir: bloco;
    alinhamento-texto: esquerda;
  }
}

Terceiro passo - Adicionar JavaScript:

/* Quando o usuário clicar no ícone, alternar entre adicionar e remover a classe "responsive" no topnav */
function myFunction() {
  var x = document.getElementById("myTopnav");
  if (x.className === "topnav") {
    x.className += " responsive";
  } else {
    x.className = "topnav";
  }
}

Experimente você mesmo

Páginas relacionadas

Tutorial:Barra de navegação CSS