0Pricing
CSS Academy · Lektion

Dropdown- und Popover-Muster

Erstellen Sie barrierefreie Dropdown-Menüs und Popovers mit CSS-Positionierung und der Popover API.

Dropdown- und Popover-Muster ist eine kostenlose CSS Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des CSS Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der CSS Academy-Kurs umfasst insgesamt 4 Lektionen.

Die Popover API

Die HTML Popover API (Chrome 114+, umfassend unterstützt) bietet deklaratives Anzeigen und Ausblenden: das Attribut popover am Ziel und popovertarget an der auslösenden Schaltfläche. Für grundlegendes Öffnen und Schließen ist kein JavaScript erforderlich, einschließlich Light Dismiss (Klick außerhalb zum Schließen) und der Verarbeitung der Escape-Taste.

Popovers gestalten

Wählen Sie Popover-Elemente mit [popover] oder :popover-open aus. Das Pseudo-Element ::backdrop steht zum Abdunkeln des Hintergrunds zur Verfügung. Popovers werden wie Dialoge in der Top Layer dargestellt – Probleme mit z-index-Überlagerungen treten nicht auf.

Dropdown-Positionierung mit Anchor Positioning

CSS Anchor Positioning (Chrome 125+) positioniert ein Popover ohne JavaScript relativ zu seiner Auslösung: anchor-name: --btn an der auslösenden Komponente, position-anchor: --btn am Popover und anschließend top: anchor(bottom); left: anchor(left), um es unterhalb der Auslösung auszurichten.

Fallback mit position: absolute

Ohne Anchor Positioning verwenden Sie einen positionierten übergeordneten Wrapper: position: relative am Container und position: absolute; top: 100%; left: 0 am Dropdown. Das funktioniert browserübergreifend, erfordert jedoch, dass Auslösung und Dropdown Geschwisterelemente in einem positionierten Container sind.

CSS für Dropdown-Menüs

Gestalten Sie die Dropdown-Liste mit position: absolute; background: var(--color-surface); box-shadow: var(--shadow-md); border-radius: var(--radius-md); padding: var(--spacing-1) 0; min-width: 200px. Menüelemente verwenden Innenabstand, einen Hover-Hintergrund und eine Darstellung über die gesamte Breite.

Animation

Animieren Sie das Öffnen und Schließen von Popovers mit @starting-style für den Eintritt und transition-behavior: allow-discrete, um die Änderung der Eigenschaft display zu animieren. Dadurch werden CSS-only-Eintritts- und -Austrittsanimationen ermöglicht, die an den geöffneten bzw. geschlossenen Zustand des Popovers gebunden sind.

Tastaturbedienbarkeit

Dropdown-Menüs müssen per Tastatur bedienbar sein: Mit den Pfeiltasten navigieren Sie zwischen den Menüelementen, Enter/Leertaste aktiviert das fokussierte Element, und Escape schließt das Menü und gibt den Fokus an die Auslösung zurück. Die Popover API verarbeitet Escape automatisch; die Navigation mit den Pfeiltasten erfordert die Verarbeitung von JavaScript-Ereignissen.

ARIA für benutzerdefinierte Dropdowns

Bei einem benutzerdefinierten Dropdown (ohne Popover API) fügen Sie der Auslösung aria-haspopup="listbox" und aria-expanded, der Liste role="listbox" sowie jedem Element role="option" und aria-selected hinzu. Screenreader geben den erweiterten Zustand und die Anzahl der Elemente aus.

Überlauf und Viewport-Kollisionen

Ein unterhalb seiner Auslösung positioniertes Dropdown kann am unteren Rand aus dem Viewport herausragen. Erkennen Sie dies mit IntersectionObserver oder getBoundingClientRect und verschieben Sie das Dropdown oberhalb der Auslösung. CSS Anchor Positioning übernimmt dies mit position-try-fallbacks.

Mehrstufige Dropdowns

Verschachtelte Dropdowns (Untermenüs) erhöhen die Komplexität. Positionieren Sie Untermenüs rechts neben ihren übergeordneten Elementen. Fügen Sie vor dem Ausblenden beim Verlassen mit der Maus eine Verzögerung hinzu (über CSS transition-delay oder einen JS-Timeout), damit Untermenüs bei diagonalen Mausbewegungen nicht geschlossen werden.

Besonderheiten bei Touchgeräten

Durch Hover ausgelöste Dropdowns funktionieren auf Touchgeräten nicht – dort gibt es keinen Hover-Zustand. Verwenden Sie grundsätzlich Klick- bzw. Tipp-Auslösungen. Das Schließen durch Tippen außerhalb funktioniert über das Light Dismiss der Popover API oder einen document-Klicklistener, der geöffnete Dropdowns schließt.

Wissensabfrage

Welche Funktionalität stellt die Popover API automatisch bereit, für die zuvor benutzerdefiniertes JavaScript erforderlich war?

Zusammenfassung

Die Popover API und CSS Anchor Positioning ermöglichen gemeinsam deklarative Dropdown- und Popover-Muster mit minimalem JavaScript. Für eine breitere Browserunterstützung funktionieren Muster mit positionierten Containern zuverlässig. Tastaturbedienbarkeit, ARIA-Attribute, die Behandlung von Viewport-Kollisionen und die Unterstützung von Touchgeräten vervollständigen produktionsreife Dropdown-Komponenten.

Häufig gestellte Fragen

Ist die Lektion „Dropdown- und Popover-Muster“ kostenlos?

Ja — der vollständige Text von „Dropdown- und Popover-Muster“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des CSS Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der CSS Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Dropdown- und Popover-Muster“?

Erstellen Sie barrierefreie Dropdown-Menüs und Popovers mit CSS-Positionierung und der Popover API. Du übst CSS Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um CSS Academy zu starten?

Keine Vorkenntnisse erforderlich. CSS Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Dropdown- und Popover-Muster“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser CSS Academy-Lektion Code schreiben und ausführen?

Ja. Jede CSS Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Card-Komponente mit CSS Custom Properties
  2. Styling von Modals und Dialogen
  3. Dropdown- und Popover-Muster
  4. Tab-Komponente mit :checked-Hack vs. JS
← Zurück zu CSS Academy