Using <details> for Menus and Dialogs is an Interesting Idea

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Using <details> für ein Menü mag eine interessante Idee sein, aber vielleicht nichts, was man tatsächlich in der Produktion einsetzen sollte. Siehe „More Details on <details> für eine Erklärung.

Eines der ermächtigendsten Dinge, die du als neuer Front-End-Entwickler lernen kannst, wenn du anfängst, JavaScript zu lernen, ist Klassen zu ändern. Wenn du Klassen ändern kannst, kannst du deine CSS-Kenntnisse nutzen, um viel auf einer Seite zu steuern. Schalte eine Klasse für das eine ein, style sie auf diese Weise, schalte zu einer anderen Klasse um (oder entferne sie) und style sie auf eine andere Weise.

Aber es gibt ein HTML-Element, das ebenfalls umschaltet! <details>!

Zum Beispiel ist es definitiv der schnellste Weg, eine Akkordeon-UI zu erstellen.

Wenn man dieses auf Toggles basierende Denken erweitert, was ist ein Benutzermenü, wenn nicht ein einzelnes Akkordeon? Dasselbe gilt für Modals. Wenn wir diesen Weg gehen würden, könnten wir JavaScript für diese dynamischen Dinge optional machen. Genau das hat GitHub mit seinem Menü gemacht.

Innerhalb des <details> Elements verwendet GitHub einige Web Components (die JavaScript erfordern), um einige Bonusfunktionen zu bieten, aber diese sind für die grundlegende Menüfunktionalität nicht erforderlich. Das bedeutet, dass das Menü robust und sofort interaktiv ist, wenn die Seite gerendert wird. 

Mu-An Chiou, ein Web-Systems-Ingenieur bei GitHub, der dies vorangetrieben hat, hat eine Präsentation dazu!

Der schlimmste Schlag gegen <details> ist seine Browserunterstützung in Edge, aber ich schätze, wir müssen uns bald keine Sorgen mehr darüber machen, da Edge Chromium verwenden wird… bald? Weiß jemand das?