Zum Inhalt springen
A beautiful cover image with the text "Dropdown and List?"

Durch die Verwendung des Starlight Sidebar Topics-Plugins zusammen mit der Starlight Sidebar Topics Dropdown-Komponente können Sie eine Website erstellen, die auf dem Desktop eine Themenliste und im mobilen Bereich ein Dropdown-Menü anzeigt.

Voraussetzungen

Sie benötigen eine bestehende Starlight-Website.

Installieren Sie die Pakete

Zuerst installieren Sie das Plugin starlight-sidebar-topics und die Komponente starlight-sidebar-topics-dropdown:

Terminal-Fenster
npm install starlight-sidebar-topics starlight-sidebar-topics-dropdown

Anschließend folgen Sie den Setup-Anleitungen von Starlight Sidebar Topics und Starlight Sidebar Topics Dropdown.

Ändern Sie die Sidebar-Komponente

In der Setup-Anleitung der Dropdown-Komponente haben Sie eine Sidebar-Komponente erstellt, die nur das Dropdown-Menü rendert. Jetzt müssen Sie diese Komponente so ändern, dass sie auch die standardmäßige Sidebar rendert, wenn der Benutzer einen Desktop verwendet.

src/components/Sidebar.astro
---
import Default from '@astrojs/starlight/components/Sidebar.astro';
import Topics from 'starlight-sidebar-topics/components/Sidebar.astro';
import TopicsDropdown from 'starlight-sidebar-topics-dropdown/TopicsDropdown.astro';
---
<div class="topics">
<Topics/>
</div>
<div class="topics-dropdown">
<TopicsDropdown/>
</div>
<Default><slot /></Default>
<style>
/* Hide topics by default and show them on medium screens and larger */
.topics {
display: none;
}
@media (min-width: 800px) {
.topics {
display: block;
}
}
/* Show topics dropdown on small screens and hide it on medium screens and larger */
.topics-dropdown {
display: block;
}
@media (min-width: 800px) {
.topics-dropdown {
display: none;
}
}
</style>

Ergebnis

Wenn Sie diese Schritte befolgen, sieht Ihre Sidebar folgendermaßen aus:

Endgültiges Ergebnis mit der Desktop-Ansicht links und der mobilen Ansicht rechts

Sie finden den vollständigen Quellcode dieses Guides in diesem StackBlitz-Beispiel.

Unendliche Möglichkeiten

Sie könnten es auch umgekehrt machen (Liste auf Mobilgeräten, Dropdown auf Desktops), indem Sie die Eigenschaften display: block und display: none im CSS vertauschen.

Außerdem könnten Sie auch Ihre eigene Anzeige-Komponente erstellen, die die Routendaten aus dem Starlight Sidebar Topics-Plugin verwendet und die Themen auf eine benutzerdefinierte Weise rendert. Dies ist etwas fortgeschrittener, aber Sie finden weitere Informationen dazu in der Dokumentation “Benutzerdefinierte Themenliste”.