By the end of this lesson, you will be able to:
:information_source: What is a Bootstrap Navigation Bar? A Bootstrap navigation bar (navbar) is a ready-made component that creates a navigation header at the top of your webpage. It helps visitors easily move between different pages of your website!
To build a complete navbar, you'll use these building blocks:
.navbar-brand
- Shows your website name or logo.navbar-nav
- Contains your navigation links.navbar-toggler
- The hamburger menu button for mobile.collapse
- Hides/shows content on small screens.navbar-collapse
- Wraps collapsible navigation items.toggler-icon
- The three-line icon inside the toggle button
An example of the Bootstrap navigation bar
Creating a Bootstrap navbar is easy! Just copy the code from the Bootstrap Cheat Sheet and customize it:
:bulb: Tip Start with a working example, then modify it to match your needs!
Example:
HTML Input:
<nav class="navbar navbar-expand-md navbar-light bg-warning">
<a href="index.html" class="navbar-brand">Telebort</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav">
<li class="nav-item">
<a href="about.html" class="nav-link">About</a>
</li>
<li class="nav-item">
<a href="contact.html" class="nav-link">Contact Us</a>
</li>
<li class="nav-item">
<a href="faq.html" class="nav-link">FAQ</a>
</li>
</ul>
</div>
</nav>
Output:
To customize your navbar, you'll learn about:
.navbar
class to create a Bootstrap navigation bar<nav>
HTML element<nav>
element tells browsers "this is a navigation section!":memo: Note The
<nav>
element is semantic HTML - it helps search engines and screen readers understand your page structure!
Example:
HTML Input:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Navbar Demo</title>
<link rel="stylesheet" href="css/bootstrap.css" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<nav class="navbar">Telebort</nav>
<script src="jQuery.js"></script>
<script src="js/bootstrap.js"></script>
</body>
</html>
Output:
Telebort
(A simple text "Telebort" displayed without any styling)
.navbar-brand
class displays your website's name or logo<a>
element so visitors can click it to go homeExample:
HTML Input:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Navbar Demo</title>
<link rel="stylesheet" href="css/bootstrap.css" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<nav class="navbar">
<a href="index.html" class="navbar-brand">Telebort</a>
</nav>
<script src="jQuery.js"></script>
<script src="js/bootstrap.js"></script>
</body>
</html>
Output:
Telebort (styled as a clickable brand link)
.navbar-nav
class creates a container for your navigation links3 Simple Steps to Add Navigation Links:
.navbar-nav
to a <ul>
element.nav-item
to each <li>
element.nav-link
to each <a>
element inside:bulb: Tip Remember: UL -> LI -> A (Unordered List -> List Item -> Anchor/Link)
Let's see it in action:
Example:
HTML Input:
<body>
<nav class="navbar">
<a href="index.html" class="navbar-brand">Telebort</a>
<ul class="navbar-nav">
<li class="nav-item">
<a href="about.html" class="nav-link">About</a>
</li>
<li class="nav-item">
<a href="contact.html" class="nav-link">Contact Us</a>
</li>
<li class="nav-item">
<a href="faq.html" class="nav-link">FAQ</a>
</li>
</ul>
</nav>
<script src="jQuery.js"></script>
<script src="js/bootstrap.js"></script>
</body>
Output:
Telebort
About
Contact Us
FAQ
(Brand and navigation links displayed vertically)
:memo: Note Your navigation links stay vertical until you add a special "expand" class. Keep reading to learn how!
.navbar-expand-{size}
to make your navbar responsive{size}
with: sm
, md
, lg
, or xl
.navbar-expand-md
means "expand horizontally on medium screens and up"How it works:
Example:
HTML Input:
<body>
<nav class="navbar navbar-expand-md">
<a href="index.html" class="navbar-brand">Telebort</a>
<ul class="navbar-nav">
<li class="nav-item">
<a href="about.html" class="nav-link">About</a>
</li>
<li class="nav-item">
<a href="contact.html" class="nav-link">Contact Us</a>
</li>
<li class="nav-item">
<a href="faq.html" class="nav-link">FAQ</a>
</li>
</ul>
</nav>
<script src="jQuery.js"></script>
<script src="js/bootstrap.js"></script>
</body>
Output:
When screen viewport size ``is >=768``px: Telebort About | Contact Us | FAQ
(horizontal layout)
When screen viewport size ``is <768``px:
Telebort
About
Contact Us
FAQ
(vertical layout)
Want to turn your navbar into a hamburger menu on mobile? You'll need these classes:
.navbar-toggler
- Creates the hamburger button.collapse
and .navbar-collapse
- Hide/show the menu items3 Steps to Create a Collapsible Navbar:
Add a button with:
class="navbar-toggler"
data-toggle="collapse"
data-target="#collapsibleNavbar"
Wrap your navigation links in a <div>
with:
class="collapse navbar-collapse"
id="collapsibleNavbar"
(must match the data-target!)Add the hamburger icon inside the button:
<span class="navbar-toggler-icon"></span>
Example:
HTML Input:
<nav class="navbar navbar-expand-md">
<a href="index.html" class="navbar-brand">Telebort</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav">
<li class="nav-item">
<a href="about.html" class="nav-link">About</a>
</li>
<li class="nav-item">
<a href="contact.html" class="nav-link">Contact Us</a>
</li>
<li class="nav-item">
<a href="faq.html" class="nav-link">FAQ</a>
</li>
</ul>
</div>
</nav>
Output:
Telebort About | Contact Us | FAQ
(horizontal layout with all links visible)Telebort [☰]
(with hamburger menu button; links appear when button is clicked):warning: Warning Can't see the hamburger icon? It might be the same color as your background! Let's fix that with color schemes.
Bootstrap makes it easy to style your navbar with two theme classes:
Choose Your Theme:
.navbar-light
- Use with light backgrounds (text becomes dark).navbar-dark
- Use with dark backgrounds (text becomes light)Add Background Colors:
.bg-*
classes to set any background color.bg-primary
, .bg-warning
, .bg-info
, .bg-success
:bulb: Tip Match your theme to your background! Light theme for light colors, dark theme for dark colors.
Example:
HTML Input:
<nav class="navbar navbar-expand-md navbar-light bg-warning">
<a href="index.html" class="navbar-brand">Telebort</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav">
<li class="nav-item">
<a href="about.html" class="nav-link">About</a>
</li>
<li class="nav-item">
<a href="contact.html" class="nav-link">Contact Us</a>
</li>
<li class="nav-item">
<a href="faq.html" class="nav-link">FAQ</a>
</li>
</ul>
</div>
</nav>
Output:
Telebort
brand and About | Contact Us | FAQ
links in dark textTelebort
brand and visible hamburger menu [☰]
button:memo: Note Success! The hamburger icon is now visible because we used
.navbar-light
with.bg-warning
- the light theme gives us a dark icon that shows up on the yellow background!
You've learned how to create a responsive Bootstrap navigation bar! Here's what you can do now:
:white_check_mark: Create a basic navbar using .navbar
class
:white_check_mark: Add your brand with .navbar-brand
:white_check_mark: Include navigation links using .navbar-nav
, .nav-item
, and .nav-link
:white_check_mark: Make it responsive with .navbar-expand-{size}
:white_check_mark: Add a mobile menu using .navbar-toggler
and .collapse
:white_check_mark: Style with colors using .navbar-light
/.navbar-dark
and .bg-*
Bootstrap Navigation Bar (Part 1) Video Tutorial
Bootstrap Navigation Bar (Part 2) Video Tutorial
Code with AI: Customize Bootstrap components.
Prompts:
Ready to build your own navbar? Try these challenges:
Create a simple navbar with:
Build a responsive navbar that:
Design a navbar with:
:bulb: Tip Start with the basic example from this lesson and modify it step by step. Test on different screen sizes to see how it responds!