How to Create a Responsive Navbar Sidebar 'Drawer' in Bootstrap?

Susan Sarandon
Release: 2024-11-21 11:13:12
Original
123 people have browsed it

How to Create a Responsive Navbar Sidebar

Create a Responsive Navbar Sidebar "Drawer" in Bootstrap

Bootstrap 5 introduces an official Offcanvas Component that simplifies the creation of sidebars. However, creating a sidebar without the component is still possible.

Considerations for Sidebar Navs

Sidebar navigation menus can pose various challenges:

  • Responsiveness: Should the sidebar adjust its width, visibility, or orientation based on screen size?
  • Multi-level: Should the nav items include sublevels, and how will their height be accommodated?
  • Toggling: Can the sidebar be toggled using a button or an icon?
  • Positioning: Should the sidebar be positioned alongside or behind page content?
  • Placement: Should the sidebar appear on the left or right side?
  • Scrolling: How should the sidebar scroll in relation to the page?
  • Animation: Should the sidebar slide, collapse, or fade into view?

Recommended Approach

In this specific case, instead of using col-auto on the right column, consider using col to fill the width when the menu is collapsed:

<div class="container-fluid h-100">
  <div class="row h-100">
    <div class="col-5 col-md-3 collapse width m-0 p-0 h-100 bg-dark">
Copy after login

Enhanced Sidebar with Fixed Width

The following updated sidebar is closer to the example you provided and features a fixed width, adaptive behavior, and a slide-left/right animation:

/* Set sidebar width */
.w-sidebar {
    width: 200px;
    max-width: 200px;
}

/* Adjust sidebar on collapsing */
.row.collapse {
    margin-left: -200px;
    left: 0;
    transition: margin-left .15s linear;
}

.row.collapse.show {
    margin-left: 0 !important;
}

/* Adjust sidebar on collapsing */
.row.collapsing {
    margin-left: -200px;
    left: -0.05%;
    transition: all .15s linear;
}
Copy after login

Full-Featured Sidebar

This advanced sidebar includes additional functionality:

  • Fixed width
  • Adaptive behavior (Collapses or overlays based on screen size)
  • Toggling
  • Responsive (Becomes an overlay on smaller screens)
/* Optional for overlay sidebar on small screens */
@media (max-width:768px) {

    .row.collapse,
    .row.collapsing {
        margin-left: 0 !important;
        left: 0 !important;
        overflow: visible;
    }
    
    .row > .sidebar.collapse {
        display: flex !important;
        margin-left: -100% !important;
        transition: all .3s linear;
        position: fixed;
        z-index: 1050;
        max-width: 0;
        min-width: 0;
        flex-basis: auto;
    }
    
    .row > .sidebar.collapse.show {
        margin-left: 0 !important;
        width: 100%;
        max-width: 100%;
        min-width: initial;
    }
    
    .row > .sidebar.collapsing {
        display: flex !important;
        margin-left: -10% !important;
        transition: all .2s linear !important;
        position: fixed;
        z-index: 1050;
        min-width: initial;
    }
}
Copy after login

The above is the detailed content of How to Create a Responsive Navbar Sidebar 'Drawer' in Bootstrap?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template