Bootstrap 4 - Navs

Descrição

O Bootstrap fornece itens de navegação para o seu site em um menu horizontal.

Nav Base com Link Desabilitado

Crie um menu nav adicionando a classe .nav ao elemento <ul> seguido pelos itens nav e adicione a classe nav.link para criar o link para os itens nav. O exemplo a seguir demonstra isso -

Exemplo

<html lang = "en">
   <head>
      <!-- Meta tags -->
      <meta charset = "utf-8">
      <meta name = "viewport" content = "width = device-width, initial-scale = 1, shrink-to-fit = no">
      
      <!-- Bootstrap CSS -->
      <link rel = "stylesheet" 
         href = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" 
         integrity = "sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" 
         crossorigin = "anonymous">
      
      <title>Bootstrap 4 Example</title>
   </head>
   
   <body>
      <div class = "container">
         <h2>Base Nav and Disabled Link</h2>
         <ul class = "nav">
            <li class = "nav-item">
               <a class = "nav-link active" href = "#">Home</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">About Us</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">Contact</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link disabled" href = "#">Sign-In (Disabled)</a>
            </li>
         </ul>
      </div>
      
      <!-- jQuery first, then Popper.js, then Bootstrap JS -->
      <script src = "https://code.jquery.com/jquery-3.3.1.slim.min.js" 
         integrity = "sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" 
         crossorigin = "anonymous">
      </script>
      
      <script src = "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" 
         integrity = "sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" 
         crossorigin = "anonymous">
      </script>
      
      <script src = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" 
         integrity = "sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" 
         crossorigin = "anonymous">
      </script>
      
   </body>
</html>

Isso produzirá o seguinte resultado -

Resultado

Nav alinhado

Nav pode ser alinhado ao centro adicionando a classe .justify-content-center e ao lado direito adicionando a classe .justify-content-end como mostrado no exemplo abaixo -

Exemplo

<html lang = "en">
   <head>
      <!-- Meta tags -->
      <meta charset = "utf-8">
      <meta name = "viewport" content = "width = device-width, initial-scale = 1, shrink-to-fit = no">
      
      <!-- Bootstrap CSS -->
      <link rel = "stylesheet" 
         href = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" 
         integrity = "sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" 
         crossorigin = "anonymous">
      
      <title>Bootstrap 4 Example</title>
   </head>
   
   <body>
      <div class="container">
         <h2>Center Aligned Nav</h2>
         <ul class = "nav justify-content-center">
            <li class = "nav-item">
               <a class = "nav-link active" href = "#">Home</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">About Us</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">Contact</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">Sign-In</a>
            </li>
         </ul>
         
         <h2>Right Aligned Nav</h2>
         <ul class = "nav justify-content-end">
            <li class = "nav-item">
               <a class = "nav-link active" href = "#">Home</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">About Us</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">Contact</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">Sign-In</a>
            </li>
         </ul>
      </div>
      
      <!-- jQuery library -->
      <script src = "https://code.jquery.com/jquery-3.2.1.slim.min.js" 
         integrity = "sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" 
         crossorigin = "anonymous"></script>
      
      <!-- Popper -->
      <script src =" https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" 
         integrity = "sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" 
         crossorigin = "anonymous"></script>
      
      <!-- Latest compiled and minified Bootstrap JavaScript -->
      <script src = "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" 
         integrity = "sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" 
         crossorigin = "anonymous"></script>
   </body>
</html>

Isso produzirá o seguinte resultado -

Resultado

Alinhamento vertical

Você pode criar navegação vertical adicionando a classe .flex-column ao elemento .nav como mostrado no exemplo abaixo -

Exemplo

<html lang = "en">
   <head>
      <!-- Meta tags -->
      <meta charset = "utf-8">
      <meta name = "viewport" content = "width = device-width, initial-scale = 1, shrink-to-fit = no">
      
      <!-- Bootstrap CSS -->
      <link rel = "stylesheet" 
         href = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" 
         integrity = "sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" 
         crossorigin = "anonymous">
      
      <title>Bootstrap 4 Example</title>
   </head>
   
   <body>
      <div class = "container">
         <h2>Vertical Alignment</h2>
         <ul class = "nav flex-column">
            <li class = "nav-item">
               <a class = "nav-link active" href = "#">Home</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">About Us</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">Contact</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">Sign-In</a>
            </li>
         </ul>
      </div>
      
      <!-- jQuery library -->
      <script src = "https://code.jquery.com/jquery-3.2.1.slim.min.js" 
         integrity = "sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" 
         crossorigin = "anonymous"></script>
      
      <!-- Popper -->
      <script src = "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" 
         integrity = "sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" 
         crossorigin="anonymous"></script>
      
      <!-- Latest compiled and minified Bootstrap JavaScript -->
      <script src = "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" 
         integrity = "sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" 
         crossorigin = "anonymous"></script>
   </body>
</html>

Isso produzirá o seguinte resultado -

Resultado

Tabs, Pills, Tabs e Pills com lista suspensa

Você pode criar uma interface de navegação com guias usando a classe .nav-tabs e o menu de navegação para nav pílulas usando a classe .nav-pills . Você também pode adicionar um menu suspenso a uma guia ou pílula usando a classe .dropdown no elemento <li> conforme mostrado no exemplo abaixo -

Exemplo

<html lang = "en">
   <head>
      <!-- Meta tags -->
      <meta charset = "utf-8">
      <meta name = "viewport" content = "width = device-width, initial-scale = 1, shrink-to-fit = no">
      
      <!-- Bootstrap CSS -->
      <link rel = "stylesheet" 
         href = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" 
         integrity = "sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" 
         crossorigin = "anonymous">
      
      <title>Bootstrap 4 Example</title>
   </head>
   
   <body>
      <div class = "container">
         <h2>Navigation Tabs</h2>
         <ul class = "nav nav-tabs">
            <li class = "nav-item">
               <a class = "nav-link active" href = "#">Home</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">About Us</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">Contact</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">Sign-In</a>
            </li>
         </ul>
         <br>
         
         <h2>Navigation Pills</h2>
         <ul class = "nav nav-pills">
            <li class = "nav-item">
               <a class = "nav-link active" href = "#">Home</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">About Us</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">Contact</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">Sign-In</a>
            </li>
         </ul>
         <br>
         
         <h2>Tabs With Dropdown</h2>
         <ul class = "nav nav-tabs">
            <li class = "nav-item">
               <a class = "nav-link active" href = "#">Home</a>
            </li>
            <li class = "nav-item dropdown">
               <a class = "nav-link dropdown-toggle" data-toggle = "dropdown" 
                  href = "#" role = "button" aria-haspopup = "true" 
                  aria-expanded = "false">Library</a>
               
               <div class = "dropdown-menu">
                  <a class = "dropdown-item" href = "#">HTML-5</a>
                  <a class = "dropdown-item" href = "#">CSS-3</a>
                  <a class = "dropdown-item" href = "#">JavaScript</a>
                  <div class = "dropdown-divider"></div>
                  <a class = "dropdown-item" href = "#">Bootstrap 4</a>
               </div>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">About Us</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">Contact</a>
            </li>
         </ul>
         <br>
         
         <h2>Pills with dropdown</h2>
         <ul class = "nav nav-pills">
            <li class = "nav-item">
               <a class = "nav-link active" href = "#">Home</a>
            </li>
            <li class = "nav-item dropdown">
               <a class = "nav-link dropdown-toggle" data-toggle = "dropdown" 
                  href =" #" role = "button" aria-haspopup = "true" 
                  aria-expanded =" false">Library</a>
               
               <div class = "dropdown-menu">
                  <a class = "dropdown-item" href = "#">HTML-5</a>
                  <a class = "dropdown-item" href = "#">CSS-3</a>
                  <a class = "dropdown-item" href = "#">JavaScript</a>
                  <div class = "dropdown-divider"></div>
                  <a class = "dropdown-item" href = "#">Bootstrap 4</a>
               </div>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">About Us</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" href = "#">Contact</a>
            </li>
         </ul>
      </div>
      
      <!-- jQuery library -->
      <script src = "https://code.jquery.com/jquery-3.2.1.slim.min.js" 
         integrity = "sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" 
         crossorigin = "anonymous"></script>
      
      <!-- Popper -->
      <script src = "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" 
         integrity = "sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" 
         crossorigin = "anonymous"></script>
      
      <!-- Latest compiled and minified Bootstrap JavaScript -->
      <script src = "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" 
         integrity = "sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" 
         crossorigin = "anonymous"></script>
         
   </body>
</html>

Isso produzirá o seguinte resultado -

Resultado

Tabuletas e comprimidos alternáveis

Você pode criar guias ou comprimidos alternáveis ​​adicionando o atributo data-toggle = "tab" ou data-toggle = "pill" ao elemento <a>. Para cada guia ou comprimido, adicione uma classe .tab-pane com um ID exclusivo e insira o conteúdo dentro de um elemento <div> com a classe .tab-content .

O exemplo a seguir demonstra isso -

Exemplo

<html lang = "en">
   <head>
      <!-- Meta tags -->
      <meta charset = "utf-8">
      <meta name = "viewport" content = "width = device-width, initial-scale = 1, shrink-to-fit = no">
      
      <!-- Bootstrap CSS -->
      <link rel = "stylesheet" 
         href = "https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" 
         integrity = "sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" 
         crossorigin = "anonymous">
      
      <title>Bootstrap 4 Example</title>
   </head>
   
   <body>
      <div class = "container">
         <h2>Toggleable Tabs</h2>
         <ul class = "nav nav-tabs" id = "myTab" role = "tablist">
            <li class = "nav-item">
               <a class = "nav-link active" id = "home-tab" data-toggle = "tab" 
                  href = "#home" role = "tab" aria-controls = "home" 
                  aria-selected = "true">Home</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" id = "aboutus-tab" data-toggle = "tab" 
                  href = "#aboutus" role = "tab" aria-controls = "aboutus" 
                  aria-selected = "false">About Us</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" id = "contact-tab" data-toggle = "tab" 
                  href = "#contact" role = "tab" aria-controls = "contact" 
                  aria-selected = "false">Contact</a>
            </li>
         </ul>
         
         <div class = "tab-content" id = "myTabContent">
            <div class = "tab-pane fade show active" id = "home" role = "tabpanel" 
               aria-labelledby = "home-tab">Content for Home tab</div>
            
            <div class = "tab-pane fade" id = "aboutus" role = "tabpanel" 
               aria-labelledby = "aboutus-tab">Content for About Us tab</div>
            
            <div class = "tab-pane fade" id = "contact" role = "tabpanel" 
               aria-labelledby = "contact-tab">Content for Contact tab</div>
         </div>
         <br>
         
         <h2>Toggleable Pills</h2>
         <ul class = "nav nav-pills mb-3" id = "pills-tab" role = "tablist">
            <li class = "nav-item">
               <a class = "nav-link active" id = "pills-home-tab" 
                  data-toggle = "pill" href = "#pills-home" role = "tab" 
                  aria-controls = "pills-home" aria-selected = "true">Home</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" id = "pills-aboutus-tab" data-toggle = "pill" 
                  href = "#pills-aboutus" role = "tab" aria-controls = "pills-aboutus" 
                  aria-selected = "false">About Us</a>
            </li>
            <li class = "nav-item">
               <a class = "nav-link" id = "pills-contact-tab" data-toggle = "pill" 
                  href = "#pills-contact" role = "tab" aria-controls = "pills-contact" 
                  aria-selected = "false">Contact</a>
            </li>
         </ul>
         
         <div class = "tab-content" id = "pills-tabContent">
            <div class = "tab-pane fade show active" id = "pills-home" 
               role = "tabpanel" aria-labelledby = "pills-home-tab">
               
               Content for Home tab
            </div>
            
            <div class = "tab-pane fade" id = "pills-aboutus" role = "tabpanel" 
               aria-labelledby = "pills-aboutus-tab">
               
               Content for About Us tab
            </div>
            
            <div class = "tab-pane fade" id = "pills-contact" role = "tabpanel" 
               aria-labelledby = "pills-contact-tab">
               
               Content for Contact tab
            </div>
         </div>
      
      </div>
      <!-- jQuery library -->
      <script src = "https://code.jquery.com/jquery-3.2.1.slim.min.js" 
         integrity = "sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" 
         crossorigin = "anonymous">
      </script>
      
      <!-- Popper -->
      <script src = "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" 
         integrity = "sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" 
         crossorigin = "anonymous">
      </script>

      <!-- Latest compiled and minified Bootstrap JavaScript -->
      <script src = "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" 
         integrity = "sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" 
         crossorigin="anonymous">
      </script>
         
   </body>
</html>

Isso produzirá o seguinte resultado -

Resultado