Creating a Navigation Bar with Bootstrap

Introduction to Bootstrap Navigation Bars

The navigation bar (navbar) is an essential component for structuring the layout and guiding users through your site. Bootstrap's navbar component provides a fully customizable, responsive navbar that automatically adapts to different screen sizes.

Basic Navbar Structure

The following example shows a simple navigation bar using Bootstrap's classes. This includes a brand, navigation links, and a responsive toggle for smaller screens.

Example: Basic Navbar

    <nav class="navbar navbar-expand-lg navbar-light bg-light">
        <a class="navbar-brand" href="#">MyWebsite</a>
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
            <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" 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="#">Services</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Contact</a>
                </li>
            </ul>
        </div>
    </nav>
                

Explanation

  • <nav class="navbar navbar-expand-lg navbar-light bg-light">: Creates a light-colored navigation bar that expands on large screens (lg).
  • <a class="navbar-brand">: Specifies the brand name or logo.
  • <button class="navbar-toggler">: Adds a toggle button that appears on smaller screens for collapsing the navbar.
  • <div class="collapse navbar-collapse">: Wraps the navigation items to allow them to collapse on smaller screens.
  • <ul class="navbar-nav">: A container for each navigation link.

Adding Dropdown Menus

Dropdowns in a navbar are useful for creating additional sub-menus. Here’s an example with a dropdown menu for "Services".

Example: Navbar with Dropdown

    <nav class="navbar navbar-expand-lg navbar-light bg-light">
        <a class="navbar-brand" href="#">MyWebsite</a>
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDropdown">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarNavDropdown">
            <ul class="navbar-nav">
                <li class="nav-item">
                    <a class="nav-link active" href="#">Home</a>
                </li>
                <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown">Services</a>
                    <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
                        <li><a class="dropdown-item" href="#">Web Development</a></li>
                        <li><a class="dropdown-item" href="#">Graphic Design</a></li>
                        <li><a class="dropdown-item" href="#">SEO</a></li>
                    </ul>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Contact</a>
                </li>
            </ul>
        </div>
    </nav>
                

Explanation

  • <li class="nav-item dropdown">: Adds a dropdown item in the navigation.
  • <a class="dropdown-toggle" data-bs-toggle="dropdown">: Creates a toggle link for the dropdown menu.
  • <ul class="dropdown-menu">: Contains each dropdown menu item.
  • aria-labelledby="navbarDropdown": Links the dropdown menu to its toggle for accessibility.

Right-Aligned Links

In some cases, you may want certain navigation links to appear on the right side of the navbar. This is done by adding the ms-auto class to the container of these items.

Example: Right-Aligned Navbar

    <nav class="navbar navbar-expand-lg navbar-light bg-light">
        <a class="navbar-brand" href="#">MyWebsite</a>
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav me-auto">
                <li class="nav-item">
                    <a class="nav-link active" href="#">Home</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">About</a>
                </li>
            </ul>
            <ul class="navbar-nav ms-auto">
                <li class="nav-item">
                    <a class="nav-link" href="#">Login</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Register</a>
                </li>
            </ul>
        </div>
    </nav>
                

Explanation

  • me-auto: Aligns the first set of items to the left.
  • ms-auto: Aligns the second set of items to the right.

Expected Output

With these examples, your navigation bar should be fully responsive and include multiple sections, dropdown menus, and options aligned as needed. Try resizing the browser window to see how it adapts.