Menu fixo, Navegação Responsiva com Bootstrap

 

Bootstrap é um framework open-source para a criação de sites e aplicações responsivas, ideal para sites móveis. Ele pode ajudar os desenvolvedores, mesmo iniciantes, a criarem seus projetos de maneira muito fácil. Mas muitas novos usuários Bootstrap  têm problemas com menus fixos – cabeçalhos de navegação – tornar os menus em telas menores e para centralizar o nome ou logotipo de um site.

Bootstrap é um dos HTML, CSS e frameworks mais populares JavaScript para o desenvolvimento de páginas web responsivas. Milhares de sites usam Bootstrap. Ele também pode ser usado em combinação com a maioria das plataformas de comércio eletrônico, de modo que temas Shopify ou temas WooCommerce, como exemplos, podem ser construídos com Bootstrap.

Por padrão, navbars em  Bootstrap coloca o logotipo ou marca o nome de um site na esquerda; rola para cima com a página e não entra em colapso. Neste artigo, vou descrever como superar essas limitações, de modo que o logotipo é centrado, a barra de navegação pode conseguir uma posição fixa, e o menu pode recolher para telas menores.

Carregando Dependências

Este projeto requer o arquivo CSS Bootstrap, o arquivo Bootstrap JavaScript e jQuery (acima da versão 1.1.9 e abaixo da versão 3).

Há muitas maneiras de incluir Bootstrap em seu projeto, mas um dos mais simples é chamar os arquivos necessários a partir de uma rede de distribuição de conteúdo. Se você escolher esta abordagem, coloque o arquivo CSS Bootstrap na seção head do seu arquivo HTML.

<Head>
...
<link 
 href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
 rel = "stylesheet"
 integridade = "sha384-1q8mTJOASx8j1Au + a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7"
 crossorigin = "anonymous"
>
</ Head>

O arquivo Bootstrap JavaScript e jQuery pode ser referenciada na parte inferior do seu documento HTML, pouco antes da tag do corpo de fechamento. Desde Bootstrap depende jQuery, você precisará incluir jQuery em primeiro lugar.

<script 
 src = "https://code.jquery.com/jquery-2.2.2.min.js"
 integridade = "sha256-36cp2Co + / + 62rEAAYHLmRCPIych47CvdM uTBJwSzWjI =" 
 crossorigin = "anonymous"
> </ Script>
<script 
 src = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"
 = "integridade" sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS
 crossorigin = "anonymous"
> </ Script>
 
</ Body>

Responsive Bootstrap Navbar

A primeira característica vai se concentrar em colapso ou, se quiser, expandindo a barra de navegação Bootstrap. A ideia é simples: Quando a página é exibida em uma tela móvel, queremos itens de navegação individuais a serem consolidadas sob um único botão, que é às vezes chamado de um menu de hambúrguer.

Em telas menores que 768 pixels de largura, os itens de navegação colapso atrás de um menu de hambúrguer.

Tocando ou clicando no menu do Hamburger exibe os itens de navegação.

Os itens de navegação ainda estão disponíveis, mas eles nem sempre são exibidos.  Isso torna relativamente fácil para os usuários móveis.

Quando a mesma página é exibida em uma tela maior (mais de 768 pixels de largura) da barra de navegação se expandirá para mostrar os itens individuais separadamente.

Nas telas de mais de 768 pixels de largura, os itens de navegação são expandidas para preencher o espaço e guardar um clique.

Este recurso é mostrado muito claramente na documentação Bootstrap , mas na hora de escrever não foi chamado ou especificamente identificada como uma barra de navegação em colapso. Pelo contrário, é simplesmente incluídos como parte de uma descrição de muitas capacidades navbar diferentes.

Um exemplo navbar colapso é mostrado na na documentação Bootstrap, mas que o tempo de escrevê-lo não foi chamado como tal.

Esta barra de navegação em colapso tem duas partes envolvidas em um elemento nav e um recipiente Bootstrap. Em Bootstrap, cada um desses invólucros tem significado em propriedades de estilo.

<Class nav = "navbar navbar-inversa fixo-navbar-top">
 <Div class = "container">
     ...
 </ Div> <! - Recipiente final ->
</ Nav>

Estamos aplicando três classes Bootstrap CSS para o nav elemento:navbar , navbar-inversos , e navbar-fixo-top .

O primeiro destes diz Bootstrap que esta é uma barra de navegação e aplica-se uma série de cores para fazer o elemento parecido com um elemento de navegação. A segunda classe, navbar-inversa, diz Bootstrap que queremos uma barra de navegação de cor escura com texto de cor clara. A terceira classe, Navbar-top fixo , fará com que a estadia barra de navegação no topo da tela, mesmo quando a página rola para baixo (mais sobre isso depois).

A primeira parte da barra de navegação dobrável define o menu do Hamburger (as três linhas horizontais) e inclui a marca do site, que neste caso é de texto simples.

<Div class = "navbar-header">
 <button
  type = "button"
  class = "navbar-toggle colapso"
  Dados-toggle = "colapso"
  data-target = "# expandir-nav"
  aria-expandida = "false"
 >
  <Span class = "sr-only"> navegação de alternância </ span>
  <Span class = "icon-bar"> </ span>
  <Span class = "icon-bar"> </ span>
  <Span class = "icon-bar"> </ span>
 </ Button>
 <a class="navbar-brand" href="#"> Melhor </a> loja
</ Div>

Grande parte deste código pode ser copiado como é e usado em praticamente qualquer projeto. A chave para notar é a do botão deestabelecimento de metas de dados . Esta propriedade informa o Bootstrap JavaScript o id da div que contém os itens navbar que queremos entrar em colapso.

Aqui está a segunda parte da barra de navegação desmontável.

<Div class = "colapso navbar-colapso" id = "expandir-nav">
 <Ul class = "nav navbar-nav navbar-left">
  <Li> <a href="#"> Homens </a> </ li>
  <Li> <a href="#"> Mulheres </a> </ li>
  <Li> <a href="#"> bagagem </a> </ li>
 </ Ul>
 <Ul class = "nav navbar-nav navbar-right">
  <Li> <a href="#"> Relógios </a> </ li>
  <Li> <a href="#"> Armas </a> </ li>
  <Li> <a href="#"> Home & amp; Acampamento </a> </ li>
 </ Ul>
</ Div>

Esta seção descreve os itens da lista reais. Observe que a propriedade id do div corresponde propriedade-alvo os dados do botão discutido acima. Para além das classes de bootstrap CSS colocados no div e ul elementos, isto é um simples par de listas.

Observe que cada uma das listas não ordenadas (UL) tem uma barra de navegação esquerdo e navbar direito classe. Essas classes irá trazer-nos para a segunda coisa que queria realizar neste artigo: centrar o texto marca ou logotipo.

Centralizar a marca em um Bootstrap Navbar

No exemplo da barra de navegação expandido mostrado acima, a marca, a melhor loja, é mostrada no meio com ligações de ambos os lados. Mas se você executou o código mostrado na última seção do artigo, a marca seria realmente à esquerda.

Por padrão, Bootstrap vai colocar a marca barra de navegação no lado esquerdo.  É preciso um pouco de CSS extra para reposicionar a marca para o centro da barra de navegação.

Para centralizar a marca em uma barra de navegação Bootstrap, eu vou usar uma consulta de mídia e apenas um pouco de CSS. Este CSS pode ser incluído no documento HTML dentro de um elemento de estilo ou incluídos em uma folha de estilo externa ligada. Neste exemplo, ele é mostrado como uma folha de estilo interna envolto em marcas de estilo.

<Style>
@media (min-width: 768px) {
 .navbar-brand {
  position: absolute;
  width: 100%;
  left: 0;
  top: 0;
  text-align: center;
  margin: auto;
 }
}
</ Style>

Bootstrap utiliza consultas de mídia para aplicar estilos específicos quando a página é exibida em telas de reunião alguma exigência.Neste caso, o CSS acima só é aplicada sobre telas que são, pelo menos, 768 pixels de largura ( min-largura ).

Assim, quando a navegação está em colapso, a marca será exibida na esquerda com o menu do Hamburger sobre o direito, mas quando a navegação é expandido a marca está centrada.

Colocar uma mensagem acima de um Bootstrap Navbar fixo

A terceira característica que vamos construir em nossa barra de navegação Bootstrap já foi mostrado nos exemplos acima. Você deve ter notado que, acima da barra de navegação Bootstrap há uma pequena seção com uma oferta de frete grátis – “frete grátis para pedidos acima $ 200.”

Este cabeçalho pré-navegação é um padrão de design popular no momento, mas normalmente não funcionará com um de posição fixa, navbar Bootstrap, uma vez que a barra de navegação quer, se você vai, para estar no topo da página.

Para alcançá-lo, primeiro você precisa adicionar o cabeçalho acima de sua barra de navegação Bootstrap.

<Div class = "nav-top">
  <Div class = "container">
   <Div class = "linha">
     <Div class = "col-xs-12">
       <a href="#"> frete grátis nos pedidos acima de $ 200 </a>
     </ Div>
   </ Div>
 </ Div>
</ Div>

Os contentores , linha e col-XS-12 aulas fazem parte do sistema de rede de Bootstrap. Estes dão o cabeçalho características de estilo particulares.

O nav-top classe é uma classe personalizada que eu usei para fazer referência a este cabeçalho. Aqui estão os estilos usados para posicionar e decorar o cabeçalho.

.nav-top {
  width: 100%;
  height: 40px;
  background: # 000;
  cor branca;
  text-transform: maiúsculas;
  text-align: center;
  position: fixed;
  overflow: hidden;
}
.nav-top a {color: white; }
.nav-top a: hover {text-decoration: underline; }
.nav-top div.row {padding: 10px 0; }

Note-se que o cabeçalho é dada uma posição fixa, que o mantém no topo da página. Ele é definido para preencher toda a tela na horizontal, e ocupará 40 pixels de espaço vertical.

Em seguida, adicionei uma classe, cabeça-room , e um id, -nav geral, a barra de navegação Bootstrap.

<Nav class = "navbar quarto cabeça navbar-inversa fixo-navbar-top" id = "general-nav">

A classe me permitiu adicionar uma margem acima da barra de navegação para abrir espaço para o cabeçalho.

.head quarto {margin-top: 40px; }

Se parássemos agora, você teria um cabeçalho fixo logo acima da sua barra de navegação Bootstrap fixo.

Algumas linhas de HTML e um par de declarações de estilo e você tem um cabeçalho acima do Bootstrap de posição fixa navbar.

Para isso, eu gostaria de adicionar um pouco de animação. Quando o usuário rola para baixo, eu quero que a barra de navegação para mover-se lentamente para cima e cobrir o cabeçalho, dando ao usuário mais espaço para se concentrar no conteúdo. Este é um outro padrão de design popular no momento.

Quando o usuário rola ou furtos para baixo a página, a barra de navegação Bootstrap irá deslizar para cima, cobrindo o cabeçalho e dando ao usuário mais espaço para se concentrar no conteúdo da página.

O efeito tem duas partes, começando com uma transição CSS.

.navbar-fixo-top {transição: todos os 3s facilidade; }

Esta declaração de estilo diz que se os estilos associado a um elemento que tem o fixo-navbar-top mudança de classe, tome três segundos a transição para os novos estilos.

A segunda parte do efeito é um pouco de JavaScript jQuery potência.Este script deve ser incluído no documento HTML depois jQuery, uma vez que se baseia em seletores e métodos do jQuery.

<Script>
 $ (Janela) .scroll (function () {
   if ($ (this) .scrollTop ()> 10) {
     $ ( 'Navbar-top fixo.') RemoveClass ( "head-room. ');
   } outro {
     $ ( '. Navbar-top fixo') addClass ( "head-room. ');
   }
 });
</ Script>

Este código relógios, se quiser, a tela. Quando o usuário rola, ele chama uma função.

$ (Janela) .scroll (function () {...}

Se o usuário tiver rolado para baixo a página de pelo menos 10 pixels, o script remove o quarto cabeça classe a partir da barra de navegação Bootstrap. Você vai se lembrar que o quarto cabeçaclasse adicionada 40 pixels de margem superior. Sem o quarto cabeça classe barra de navegação Bootstrap será posicionado na parte superior da página.

if ($ (this) .scrollTop ()> 10) {
  $ ( 'Navbar-top fixo.') RemoveClass ( "head-room. ');
}

Se a tela é menos de 10 pixels a partir do topo, o script adiciona a classe quarto cabeça.

outro {
  $ ( '. Navbar-top fixo') addClass ( "head-room. ');
}

Existe um problema potencial. A barra de navegação Bootstrap fixo pode cobrir um pouco do seu conteúdo da página. Então lembre-se de adicionar um pouco de margem superior extra para o resto do conteúdo.

Aplicar o seu deslizamento, fixo Bootstrap Navbar

agora você deve saber como criar um colapso, de posição fixa navbar Bootstrap com um pouco de espaço extra para um cabeçalho em cima.

Esta barra de navegação pode ser integrado em praticamente qualquer plataforma ou tema. Então, se você está criando um tema para Shopify, LemonStand, Bigcommerce, ou apenas sobre qualquer outro sistema de comércio eletrônico, você deve ser capaz de usar Bootstrap.

Deixe um comentário