How to Create: Dropdown Sidebar
- Previous page Top navigation bar dropdown menu
- Next Page Responsive Navigation Bar with Dropdown Menu
Learn how to add a dropdown menu in the side navigation.
Dropdown Menu in the Side Navigation Bar
Create a Dropdown Sidebar Menu
Step 1 - Add HTML:
<div class="sidenav"> <a href="#about">About</a> <a href="#services">Services</a> <a href="#clients">Clients</a> <a href="#contact">Contact</a> <button class="dropdown-btn">Dropdown <i class="fa fa-caret-down"></i> </button> <div class="dropdown-container"> <a href="#">Link 1</a> <a href="#">Link 2</a> <a href="#">Link 3</a> </div> <a href="#contact">Search</a> </div>
Example Explanation:
Open the dropdown menu with any element, such as <button>, <a>, or <p> elements.
Create a dropdown menu using a container element (such as <div>) and add dropdown menu links inside it. We will use the same style for all links within the sidebar.
Step 2 - Add CSS:
/* Fixed sidebar, full height */ .sidenav { height: 100%; width: 200px; position: fixed; z-index: 1; top: 0; left: 0; background-color: #111; overflow-x: hidden; padding-top: 20px; } /* Set the styles for the sidebar links and dropdown menu buttons */ .sidenav a, .dropdown-btn { padding: 6px 8px 6px 16px; text-decoration: none; font-size: 20px; color: #818181; display: block; border: none; background: none; width:100%; text-align: left; cursor: pointer; outline: none; } /* 鼠标悬停时 */ .sidenav a:hover, .dropdown-btn:hover { color: #f1f1f1; } /* Main content */ .main { margin-left: 200px; /* Same as the width of the sidebar */ font-size: 20px; /* Increase text size to enable scrolling */ padding: 0px 10px; } /* Add an active class to the active dropdown menu button */ .active { background-color: green; color: white; } /* Dropdown menu container (default is hidden). Optional: Add a brighter background color and some left padding to change the design of the dropdown menu content */ .dropdown-container { display: none; background-color: #262626; padding-left: 8px; } /* Optional: Set the style for the downward arrow icon */ .fa-caret-down { float: right; padding-right: 8px; }
Third step - Add JavaScript:
/* Traverse all dropdown menu buttons to toggle between hiding and showing their dropdown menu content - this allows users to have multiple dropdown menus without any conflicts */ var dropdown = document.getElementsByClassName("dropdown-btn"); var i; for (i = 0; i < dropdown.length; i++) { dropdown[i].addEventListener("click", function() { this.classList.toggle("active"); var dropdownContent = this.nextElementSibling; if (dropdownContent.style.display === "block") { dropdownContent.style.display = "none"; } else { dropdownContent.style.display = "block"; } }); }
Related pages
Tutorial:CSS Dropdown Menu
Tutorial:How to create clickable dropdown menus
Tutorial:CSS Navigation Bar
Tutorial:How to create a side navigation bar
- Previous page Top navigation bar dropdown menu
- Next Page Responsive Navigation Bar with Dropdown Menu