Menüleiste links einklappbar?
Hallo,
suche nach einem Template/Beispiel-Anwendung oder ähnliches wo erklärt wird wie man eine Sidebar (links) Implementiert die auch ein und aus geblendet werden kann.
Vorzugsweise:
- Bootstrap 5
- Blazor Server
- Kein JS
- Basic, nichts Komplexes, es sollte eine einfache Sidebar sein die ein und ausklappbar ist.
2 Antworten
Kein JS geht, ist aber unschön. Du solltest auf JS zurückgreifen. Alternativ geht mit CSS target ein # in der URL zu setzen. http://bla.de/seite.html#sidebar-auf zum beispiel. Das ist aber echt hässlich. Da bleibt nur JavaScript. Bootstrap selber hat keine Sitebar, du müsstest selber eine entwickeln, kannst aber zum stylen auf Bootstrap zurückgreifen.
<style>
.sidebar {
width: 300px;
position: fixed;
right: 0;
top: 0;
margin: 0;
transition: all 2s;
}
</style>
<div class="sidebar">
<!--Hier die sidebar Elemente-->
</div>
<script>
let sidebar = document.getElementsByClassName("sidebar")[0];
ButtonClickFunktion() { // Musst du selber implementieren, kannst du googlen, wenn du nicht weißt wie
if (sidebar.style.right == 0) {
sidebar.style.right = -300;
}
else {
sidebar.style.right = 0;
}
}
</script>
Das script ist natürlich nur so dahin geschrieben. Du musst es noch testen
Dieser Artikel zeigt verschiedene, einfache Sidebars mit Bootstrap: Bootstrap Sidebar.
Ansonsten gibt es auch eine zusätzliche Komponente für Bootstrap, mit der du eine Sidebar erstellen kannst: OffCanvas.
Eine Lösung ohne JavaScript hingegen könnte man mit einer versteckten Checkbox implementieren. Ein an sie gebundenes Label de-/aktiviert die Box. Das Label kann irgendwo im body platziert werden, die Checkbox hingegen muss immer vor dem Sidebar-Container liegen.
<label for="sidebar-toggle">Click me</label>
<input id="sidebar-toggle" type="checkbox">
<aside class="sidebar-container"><!-- ... --></aside>
Aufbauend auf dem Checkboxstatus können dann entsprechende CSS-Regeln erstellt werden.
#sidebar-toggle + .sidebar-container {
bottom: 0;
left: -100px;
position: fixed;
transition: left 1s;
top: 0;
width: 100px;
}
#sidebar-toggle:checked + .sidebar-container {
left: 0;
}
Der Nachteil an diesem Lösungsweg ist, dass er nicht barrierefrei ist. Die Änderung der Box wird nur visuell kommuniziert.