What are Bootstrap sidebars?

Responsiv Side Navigationslinje med Bootstrap 5

18/11/2022

Rating: 4.82 (16416 votes)

I en verden, hvor brugere tilgår hjemmesider fra et utal af enheder, er en intuitiv og responsiv navigation afgørende. En side navigationslinje, også kendt som en sidebar, drawer eller offcanvas-menu, tilbyder en fremragende løsning for at organisere komplekse websites med mange sider. Selvom Bootstrap 5 ikke indeholder en dedikeret 'Side Navbar'-komponent i sin officielle dokumentation, er det fuldt ud muligt at konstruere en yderst funktionel og æstetisk tiltalende side navigation ved hjælp af eksisterende Bootstrap-komponenter, især den kraftfulde 'offcanvas'-komponent. Denne artikel vil guide dig igennem processen og forklare, hvordan du bygger en responsiv og mobilvenlig side navigationslinje, der forbedrer din hjemmesides brugervenlighed markant.

What is responsive side navbar built with Bootstrap 5?
Responsive Side Navbar built with Bootstrap 5. Side Navbar is a navigation component providing a clear way for navigating complex websites with lots of pages. If you need a more advanced Side Navbar and more options, see our main SideNav documentation. This component is sometimes also referred to as Drawer, Sidebar or Offcanvas navigation.
Indholdsfortegnelse

Hvad er en Side Navigationslinje, og Hvorfor er den Vigtig?

En side navigationslinje er et UI-element, der typisk placeres i venstre (eller højre) side af en hjemmeside og indeholder links til forskellige sektioner eller sider. Dens primære formål er at give en klar og overskuelig måde at navigere på, især for websites med et stort antal sider eller en dyb hierarkisk struktur. Fordelene ved en side navigationslinje er mange:

  • Bedre organisering: Den kan rumme flere navigationspunkter end en top-navbar uden at virke overfyldt.
  • Pladsbesparelse: På desktop kan den være permanent synlig, mens den på mindre skærme kan skjules og aktiveres via et hamburger-ikon, hvilket sparer værdifuld skærmplads.
  • Forbedret brugeroplevelse: Brugere kan nemt finde det, de leder efter, hvilket reducerer kognitiv belastning og forbedrer interaktionen med siden.
  • Mobilvenlighed: Den er ideel til en mobile-first tilgang, da 'offcanvas'-mønsteret er designet til at fungere problemfrit på små skærme.

Bootstrap 5 og Den Responsive Side Navbar

Som nævnt har Bootstrap 5 ikke en 'Side Navbar'-komponent ud af boksen. Dette betyder dog ikke, at du skal undvære den. I stedet for en foruddefineret komponent, giver Bootstrap 5 dig værktøjerne til at bygge den selv med fleksible og genanvendelige komponenter. Den mest oplagte kandidat til dette er Bootstraps 'offcanvas'-komponent. 'Offcanvas' er designet til at skubbe ind fra siden (eller top/bund) af viewport'en og indeholde indhold, der normalt er skjult. Dette gør den perfekt til en responsiv side navigation.

En typisk implementering vil opføre sig som følger:

  • På desktop-skærme (typisk over 992px eller 576px, afhængig af implementationen) vil side navigationslinjen være permanent synlig.
  • På mobil- og tabletskærme vil den være skjult som standard og kan aktiveres ved at klikke på et hamburger-ikon, der ofte placeres i den øverste navigationslinje.

Dette designmønster sikrer optimal responsivitet og en fremragende brugeroplevelse på tværs af alle enheder.

Sådan Bygger du en Responsiv Side Navbar med Bootstrap 5's Offcanvas

At skabe en side navigationslinje med Bootstrap 5's 'offcanvas'-komponent involverer typisk tre hovedelementer: nødvendige ressourcer, HTML-struktur, CSS-tilpasninger og JavaScript-logik.

1. Nødvendige Ressourcer

Først skal du sørge for at inkludere Bootstrap 5's CSS- og JavaScript-filer samt eventuelle ikoner, du ønsker at bruge (f.eks. Bootstrap Icons).

<link rel="stylesheet" href="/path/to/cdn/bootstrap.min.css" /> <link rel="stylesheet" href="/path/to/cdn/bootstrap-icons.min.css" /> <script src="/path/to/cdn/bootstrap.bundle.min.js"></script>

Bemærk, at bootstrap.bundle.min.js inkluderer Popper.js, som er nødvendig for mange af Bootstraps komponenter, herunder offcanvas.

2. HTML-Struktur for Offcanvas Side Navigationslinjen

Selve navigationslinjen bygges op som en <nav>-tag med .offcanvas og .offcanvas-start klasserne. .offcanvas-start angiver, at den skal komme ind fra venstre side. Du kan også bruge .offcanvas-end for højre side.

How do I create a left slide menu?
$(".menu-toggle").click(function () { $(".dashboard-nav").toggleClass("mobile-show"); $(".dashboard").toggleClass("dashboard-compact"); That’s all! hopefully, you have successfully created the left slide menu.
<nav class="offcanvas offcanvas-start" tabindex="-1" id="minOffcanvas" data-bs-keyboard="false" data-bs-backdrop="true" data-bs-scroll="true"> <div class="offcanvas-header border-bottom"> <a href="/" class="d-flex align-items-center text-decoration-none offcanvas-title"> <h3><i class="bi bi-chat-right-text-fill"></i> Menu</h3> </a> </div> <div class="offcanvas-body px-0"> <ul class="list-unstyled ps-0"> <li class="mb-1"> <button class="btn btn-toggle align-items-center rounded collapsed" data-bs-toggle="collapse" data-bs-target="#home-collapse" aria-expanded="false">Hjem</button> <div class="collapse" id="home-collapse"> <ul class="btn-toggle-nav list-unstyled fw-normal pb-1 small"> <li><a href="/" class="rounded">Oversigt</a></li> <li><a href="#" class="rounded">Opdateringer</a></li> </ul> </div> </li> <!-- Flere menupunkter her --> </ul> </div> </nav>

Attributterne data-bs-keyboard="false", data-bs-backdrop="true" og data-bs-scroll="true" kontrollerer henholdsvis, om tastaturet kan lukke offcanvas'en, om der skal være en baggrund (backdrop), og om body'en skal kunne scrolles, når offcanvas'en er åben.

3. Menu Toggle-Knap

For at åbne og lukke din side navigationslinje på mobilskærme, skal du have en knap, der typisk er et hamburger-ikon. Denne knap vil bruge data-bs-toggle="offcanvas" og data-bs-target="#minOffcanvas" til at styre offcanvas-komponenten.

<button id="sidebarToggleBtn" class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#minOffcanvas" aria-controls="minOffcanvas" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button>

4. CSS-Tilpasninger for Responsivitet og Udseende

For at opnå den ønskede responsivitet, hvor side navigationslinjen er permanent synlig på desktop, men skjult på mobil, skal du tilføje noget brugerdefineret CSS. Dette involverer ofte at overskrive Bootstraps standardopførsel med medieforespørgsler.

/* Standardbredde for offcanvas */ .offcanvas-start { width: 250px; } /* Desktop-visning: Offcanvas permanent synlig */ @media (min-width: 992px) { .offcanvas-start { transform: none; /* Deaktiver offcanvas-transformation */ visibility: visible !important; position: sticky; /* Gør den sticky */ height: 100vh; /* Fyld hele højden */ top: 0; } .offcanvas-backdrop { display: none; /* Skjul backdrop på desktop */ } /* Skjul hamburger-ikonet på desktop */ #sidebarToggleBtn { display: none; } /* Skub indholdet af din side for at give plads til sidebaren */ body { padding-left: 250px; /* Skal matche offcanvas-bredden */ } } /* Yderligere styling for menupunkter, ikoner, etc. */ .btn-toggle { display: inline-flex; align-items: center; padding: .25rem .5rem; font-weight: 600; color: rgba(0, 0, 0, .65); background-color: transparent; border: 0; width: 100%; text-align: left; } .btn-toggle:hover, .btn-toggle:focus { color: rgba(0, 0, 0, .85); background-color: #e5e5e5; } .btn-toggle[aria-expanded="true"]::before { transform: rotate(90deg); } .btn-toggle-nav a { display: inline-flex; padding: .1875rem .5rem; margin-top: .125rem; margin-left: 1.25rem; text-decoration: none; color: rgba(0, 0, 0, .75); } .btn-toggle-nav a:hover, .btn-toggle-nav a:focus { background-color: #e5e5e5; } .btn-toggle-nav a.active { font-weight: bold; color: #0d6efd; } 

Disse CSS-regler sikrer, at din offcanvas fungerer som en permanent sidebar på større skærme, mens den forbliver en traditionel offcanvas på mindre skærme. Husk at justere padding-leftbody, så den matcher bredden på din offcanvas.

5. JavaScript-Logik

For at håndtere offcanvas'ens opførsel, især i forhold til responsive ændringer og aktive menupunkter, kan du tilføje noget JavaScript. Dette script kan sikre, at offcanvas'en automatisk vises/skjules baseret på skærmstørrelsen, og at det aktuelle menupunkt fremhæves.

var offcanvasEl = document.getElementById('minOffcanvas'); var offcanvasInstance = bootstrap.Offcanvas.getOrCreateInstance(offcanvasEl); var sidebarToggleBtn = document.getElementById('sidebarToggleBtn'); // Funktionen der håndterer visning/skjuling baseret på skærmstørrelse function toggleOffcanvasVisibility() { if (window.innerWidth >= 992) { // Desktop-størrelse if (!offcanvasEl.classList.contains('show')) { offcanvasInstance.show(); // Vis offcanvas hvis den ikke allerede er vist } } else { // Mobil-størrelse if (offcanvasEl.classList.contains('show')) { offcanvasInstance.hide(); // Skjul offcanvas hvis den er vist } } } // Funktion til at fremhæve det aktive navigationslink function highlightActiveNav() { var path = window.location.pathname.replace(/\/$/, ""); // Få nuværende sti og fjern trailing slash var activeLink = document.querySelector('.offcanvas-body a[href="' + path + '"]'); if (activeLink) { activeLink.classList.add('active'); // Udvid eventuelt forældre-collapse, hvis linket er i en undermenu var parentCollapse = activeLink.closest('.collapse'); if (parentCollapse) { var collapseToggleBtn = document.querySelector('[data-bs-target="#' + parentCollapse.id + '"]'); if (collapseToggleBtn && collapseToggleBtn.classList.contains('collapsed')) { collapseToggleBtn.click(); // Simuler klik for at udvide } } } } // Kør funktioner ved indlæsning og vinduesændring window.addEventListener('load', function() { toggleOffcanvasVisibility(); highlightActiveNav(); }); window.addEventListener('resize', toggleOffcanvasVisibility); 

Dette JavaScript sikrer en flydende overgang mellem mobil og desktop visning, og forbedrer brugeroplevelsen ved automatisk at fremhæve det aktuelle link i navigationen, selv inden for indlejrede menuer.

How to hide an element only on medium devices in Bootstrap 4?

Fordele ved Offcanvas-baseret Side Navbar

Ved at anvende Bootstrap 5's 'offcanvas'-komponent til din side navigationslinje opnår du flere fordele:

  • Indbygget Responsivitet: Offcanvas er designet med mobil-først i tankerne, hvilket gør den ideel til alle skærmstørrelser.
  • Fleksibilitet: Du kan nemt tilpasse indholdet, placeringen (venstre, højre, top, bund) og adfærden.
  • Ydeevne: Da indholdet er skjult som standard på mobil, belaster det ikke DOM'en unødigt, før det er nødvendigt.
  • Standardiseret Adfærd: Du drager fordel af Bootstraps veltestede JavaScript og CSS til at håndtere åbne/lukke-animationer og tilgængelighed.

Sammenligning: Traditionel Navbar vs. Side Navbar

For at hjælpe dig med at træffe den bedste beslutning for din hjemmeside, er her en kort sammenligning mellem en traditionel top-navigationslinje og en side navigationslinje:

FunktionTraditionel Navbar (Top)Side Navbar (Offcanvas)
PlaceringØverst på sidenTypisk venstre (eller højre) side
IndholdsmængdeBegrænset plads, ideel til få hovedkategorierKan rumme mange menupunkter og underkategorier
ResponsivitetFoldes ofte sammen til et hamburger-ikon på mobilOffcanvas-mønster; skjult som standard på mobil, permanent på desktop
BrugeroplevelseGod for simple, lineære navigationsstrukturerIdeel for komplekse websites med dybe hierarkier
Visuel indvirkningFremtrædende i toppen, kan dominere foldenKan give mere plads til hovedindholdet på desktop

Yderligere Tilpasninger og Avancerede Funktioner

Når din grundlæggende side navigationslinje er på plads, er der mange måder at udvide dens funktionalitet på:

  • Submenuer med Collapse: Som vist i HTML-eksemplet kan du nemt integrere Bootstraps .collapse-komponent for at skabe foldbare underkategorier, hvilket er essentielt for dybe navigationsstrukturer.
  • Forskellige Placeringer: Brug .offcanvas-end, .offcanvas-top eller .offcanvas-bottom for at ændre, hvor offcanvas'en skubber ind fra.
  • Faste eller Scrollbare Offcanvas: Med data-bs-scroll="true" kan du tillade rulling af sidens indhold, selv når offcanvas'en er åben. Uden denne attribut vil kun offcanvas'en selv kunne rulles.
  • Temaer: Tilpas udseendet med mørke eller lyse temaer ved at tilføje Bootstrap-klasser som .navbar-dark eller .bg-dark til .offcanvas-header eller .offcanvas-body.
  • Interaktive elementer: Tilføj søgefelt, brugerprofil-widgets eller andre interaktive elementer direkte i din side navigationslinje for at forbedre funktionaliteten.

Ofte Stillede Spørgsmål (FAQ) om Side Navigationslinjer i Bootstrap 5

Q: Hvad er forskellen på en Side Navbar og en traditionel Navbar?

A: En traditionel Navbar sidder typisk øverst på siden og er bedst egnet til få, overordnede navigationspunkter. En Side Navbar (eller Offcanvas) er placeret i siden og er ideel til mere komplekse navigationsstrukturer med mange links, da den kan udvides og skjules efter behov, især på mobile enheder.

Q: Kan jeg bruge Bootstrap 5's Offcanvas til andre ting end navigation?

A: Ja, absolut! Offcanvas-komponenten er yderst alsidig og kan bruges til at vise enhver form for indhold, der skal skubbes ind fra siden, f.eks. indkøbskurve, filtermenuer, chat-paneler eller brugerprofiler, der kun vises ved behov.

Q: Hvordan gør jeg min Side Navbar permanent synlig på desktop?

A: Som beskrevet i CSS-sektionen, skal du bruge medieforespørgsler (@media (min-width: 992px)) til at overskrive offcanvas'ens standardopførsel. Du skal fjerne dens transform, gøre den position: sticky eller fixed, skjule dens backdrop og justere padding-leftbody for at give plads.

Q: Er der alternative måder at bygge en Side Navbar i Bootstrap 5?

A: Ja, du kunne teoretisk set bygge en med Bootstraps flexbox-utilities og et simpelt JavaScript-toggle, men 'offcanvas'-komponenten er den mest robuste og tilgængelige løsning, da den håndterer mange af de underliggende detaljer som animationer, fokusstyring og baggrundsoverlay.

Q: Hvordan tilføjer jeg ikoner til min Side Navbar?

A: Du kan nemt tilføje ikoner ved at inkludere et ikonbibliotek som Bootstrap Icons (<i class="bi bi-ikonnavn"></i>) eller Font Awesome. Placer ikonet lige før teksten i dine menupunkter for at give en visuel indikation.

Konklusion

At implementere en responsiv side navigationslinje med Bootstrap 5, ved hjælp af 'offcanvas'-komponenten, er en effektiv måde at forbedre navigationen og den generelle brugeroplevelse på din hjemmeside. Selvom der kræves lidt brugerdefineret CSS og JavaScript for at opnå den ønskede desktop-adfærd, er resultatet en robust, fleksibel og mobilvenlig løsning, der kan håndtere selv de mest komplekse websitestrukturer. Ved at følge de trin, der er beskrevet her, kan du skabe en professionel og intuitiv navigationsløsning, der vil glæde dine brugere og give din hjemmeside et moderne præg.

Hvis du vil læse andre artikler, der ligner Responsiv Side Navigationslinje med Bootstrap 5, kan du besøge kategorien Teknologi.

Go up