Bootstrap Menus
Menus have become a usual part of any website now. A simple HTML menu is the one made with an unordered list <ul>.
It is styled further, as per the web-page requirements, and displayed to the user.
1 2 3 4 5 6 | <ul> <li><a href="#">Home</a></li> <li><a href="#">Menu 1</a></li> <li><a href="#">Menu 2</a></li> <li><a href="#">Menu 3</a></li> </ul> |
Bootstrap would help you create a horizontal
You can add this class to your <ul> tag and you are ready for a basic menu for your website.
1 | <ul class="list-inline">...</ul> |
But this post isn’t about those menus. Here, we will discuss what we call Tabs and Pills.
These are
Bootstrap Creating a Tab
To create a tab you need to use to use the class= “nav nav-tabs” attribute with your ul element.
Check out the example below:
1 2 3 4 5 6 | <ul class="nav nav-tabs"> <li class="active"><a href="#">Home</a></li> <li><a href="#">Menu 1</a></li> <li><a href="#">Menu 2</a></li> <li><a href="#">Menu 3</a></li> </ul> |
You can also use the .active class to highlight the active menu.
Bootstrap Tabs With Dropdown Menu
You might have sub-menus for your menus. These can be displayed as dropdowns for each menu.
See the sample code below for illustration:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <ul class="nav nav-tabs"> <li class="active"><a href="#">Home</a></li> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">Menu 1 <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="#">Submenu 1-1</a></li> <li><a href="#">Submenu 1-2</a></li> <li><a href="#">Submenu 1-3</a></li> </ul> </li> <li><a href="#">Menu 2</a></li> <li><a href="#">Menu 3</a></li> </ul> |
Bootstrap Pills
To create pills you need to set your <ul> element as <ul class="nav nav-pills">.
The current page will be active, which can be done by <li class="active">
:
1 2 3 4 5 6 | <ul class="nav nav-pills"> <li class="active"><a href="#">Home</a></li> <li><a href="#">Menu 1</a></li> <li><a href="#">Menu 2</a></li> <li><a href="#">Menu 3</a></li> </ul> |
Bootstrap Vertical Pills
For vertical alignment of the pills you need to add the .nav-stacked
class.
1 2 3 4 5 6 | <ul class="nav nav-pills nav-stacked"> <li class="active"><a href="#">Home</a></li> <li><a href="#">Menu 1</a></li> <li><a href="#">Menu 2</a></li> <li><a href="#">Menu 3</a></li> </ul> |
Bootstrap Pills with dropdown menus
You can also make the Pills hold dropdown menus.
Here’s an example for the same:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <ul class="nav nav-pills nav-stacked"> <li class="active"><a href="#">Home</a></li> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">Menu 1 <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="#">Submenu 1-1</a></li> <li><a href="#">Submenu 1-2</a></li> <li><a href="#">Submenu 1-3</a></li> </ul> </li> <li><a href="#">Menu 2</a></li> <li><a href="#">Menu 3</a></li> </ul> |
Bootstrap Centered Tabs and Pills
The .nav-justified
class will help making the pills centered or justified
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!-- Centered Tabs --> <ul class="nav nav-tabs nav-justified"> <li class="active"><a href="#">Home</a></li> <li><a href="#">Menu 1</a></li> <li><a href="#">Menu 2</a></li> <li><a href="#">Menu 3</a></li> </ul> <!-- Centered Pills --> <ul class="nav nav-pills nav-justified"> <li class="active"><a href="#">Home</a></li> <li><a href="#">Menu 1</a></li> <li><a href="#">Menu 2</a></li> <li><a href="#">Menu 3</a></li> </ul> |
Bootstrap Toggleable / Dynamic Tabs
Adding the data-toggle="tab"
attribute will make the tabs toggleable.
You can also use the .tab-pan
and .tab-content
classes for better content wrapping
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <ul class="nav nav-tabs"> <li class="active"><a data-toggle="tab" href="#home">Home</a></li> <li><a data-toggle="tab" href="#menu1">Menu 1</a></li> <li><a data-toggle="tab" href="#menu2">Menu 2</a></li> </ul> <div class="tab-content"> <div id="home" class="tab-pane fade in active"> <h3>HOME</h3> <p>Some content.</p> </div> <div id="menu1" class="tab-pane fade"> <h3>Menu 1</h3> <p>Some content in menu 1.</p> </div> <div id="menu2" class="tab-pane fade"> <h3>Menu 2</h3> <p>Some content in menu 2.</p> </div> </div> |