0
0
BootstrapHow-ToBeginner · 3 min read

How to Create Navbar in Bootstrap: Simple Guide

To create a navbar in Bootstrap, use the navbar component with classes like navbar-expand for responsiveness and navbar-light or navbar-dark for color themes. Wrap your links inside a nav element with container and navbar-brand for branding.
📐

Syntax

The basic structure of a Bootstrap navbar includes a nav element with the class navbar. You add navbar-expand-{breakpoint} to control when the navbar collapses on smaller screens. Use navbar-light or navbar-dark with a background color class like bg-light or bg-dark to style the navbar. Inside, place a navbar-brand for your logo or title and a navbar-nav list for links.

html
<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">Brand</a>
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNav">
      <ul class="navbar-nav">
        <li class="nav-item">
          <a class="nav-link active" aria-current="page" href="#">Home</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Features</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Pricing</a>
        </li>
      </ul>
    </div>
  </div>
</nav>
Output
A horizontal navigation bar with a brand name on the left and three links: Home (highlighted as active), Features, and Pricing. On small screens, the links collapse into a toggle button.
💻

Example

This example shows a responsive navbar that changes to a toggle menu on small screens. It uses Bootstrap 5 classes and includes a brand name and three navigation links.

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Bootstrap Navbar Example</title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>

<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">MySite</a>
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarContent" aria-controls="navbarContent" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarContent">
      <ul class="navbar-nav me-auto mb-2 mb-lg-0">
        <li class="nav-item">
          <a class="nav-link active" aria-current="page" href="#">Home</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">About</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Contact</a>
        </li>
      </ul>
    </div>
  </div>
</nav>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
Output
A blue horizontal navbar with the brand 'MySite' on the left and three links: Home (active), About, and Contact. On small screens, the links collapse into a hamburger toggle button.
⚠️

Common Pitfalls

  • Forgetting to include Bootstrap's JavaScript bundle causes the toggle button to not work.
  • Not using the correct data-bs-* attributes for toggling in Bootstrap 5 leads to no collapse behavior.
  • Missing the navbar-expand-* class means the navbar never collapses or always collapses.
  • Using navbar-light with a dark background or navbar-dark with a light background can make text hard to read.
html
<!-- Wrong: Missing JS and wrong data attributes -->
<nav class="navbar navbar-expand-lg navbar-light bg-dark">
  <a class="navbar-brand" href="#">Brand</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#nav">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="nav">
    <ul class="navbar-nav">
      <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
    </ul>
  </div>
</nav>

<!-- Right: Correct Bootstrap 5 usage -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
  <a class="navbar-brand" href="#">Brand</a>
  <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#nav" aria-controls="nav" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="nav">
    <ul class="navbar-nav">
      <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
    </ul>
  </div>
</nav>
📊

Quick Reference

Navbar classes cheat sheet:

  • navbar: Base class for navbar
  • navbar-expand-lg: Navbar expands on large screens, collapses on smaller
  • navbar-light: Light text for dark backgrounds
  • navbar-dark: Dark text for light backgrounds
  • bg-light, bg-dark, bg-primary: Background color classes
  • navbar-brand: Brand or logo link
  • navbar-toggler: Button to toggle collapsed menu
  • collapse navbar-collapse: Container for collapsible content
  • navbar-nav: Container for nav links
  • nav-item: Each nav item
  • nav-link: Each link inside nav item

Key Takeaways

Use navbar with navbar-expand-* classes for responsive navbars.
Include Bootstrap's JavaScript bundle for toggle button functionality.
Match navbar-light or navbar-dark with appropriate background colors for readability.
Use correct data-bs-toggle and data-bs-target attributes for collapse behavior.
Wrap nav links inside navbar-nav and nav-item for proper styling.