Skip to content

Details - ganz einfach

Meistens ist es so: Ich habe eine Idee, die ich gerne auf einer meiner Webseiten umsetzen würde - sei es, dass ich das irgendwo anders gesehen habe und diese Funktion auch gerne hätte, sei es, dass mir ein eigener Gedanke gekommen ist. Dann recherchiere ich und stelle fest: das ist alles ziemlich kompliziert. Klar, wenn man HTML einigermaßen, CSS oberflächlich und JS gar nicht beherrscht, ist man zumeist auf copy&paste oder viel Ausprobieren angewiesen, und der Teufel steckt ohnehin immer im Detail.

Manchmal aber ist es auch umgekehrt: ich mache mich auf, um nach Lösungen zur Umsetzung einer Idee zu suchen - und finde heraus, dass eigentlich gar nichts mehr umzusetzen ist, weil alles schon fertig ist. So ging es mir bei einer meiner letzten Ideen, als ich eine Möglichkeit suchte, weitergehende Erläuterungen in einem längeren Text erst auf Wunsch einzublenden.

Das Prinzip ist nicht neu (und aus manchen Lehrbüchern und Kommentaren vertraut): Wichtige Begriffe werden drucktechnisch hervorgehoben, sei es durch Fett- oder Kursivdruck, sei es gar durch Randsymbole oder Kästchen. Auf der anderen Seite gibt es aber auch Details, die zum Verständnis nicht unbedingt erforderlich sind, aber weitergehende Hintergrundinformationen zur Vertiefung liefern, die nicht jeden Leser interessieren. Üblicherweise werden diese Abschnitte in einer kleineren Schriftgröße mit verringertem Zeilenabstand gedruckt - das Kleingedruckte, quasi.

Wie überträgt man dieses Konzept in die digitale Welt? Der Beck-Verlag, der in seinem Online-Dienst beck-online bereits seit Jahren juristische Kommentare als reine Onlineversionen anbietet (“Beck’sche Online-Kommentare”, kurz BeckOK), kombiniert in der sog. “Detail-Ebene” die kleinere Schriftgröße und den verringerten Zeilenabstand mit dem Ausblenden der Hintergrundinformationen - eine gute Idee, finde ich.

Das würde ich gerne für längere Texte übernehmen.

Mein erster Gedanke war, dass sich dafür eine Javascript-Lösung anbieten würde, mit der man beim Anklicken einen vorher per CSS auf visibility: hidden gesetzten Bereich sichtbar macht. So etwas müsste es ja eigentlich bereits in fertiger Form geben, dachte ich mir, und suchte bei Google nach “css details ausklappen”. Nur um festzustellen, dass es im Prinzip gar keiner Javascript-Verrenkungen bedarf: HTML 5 kennt ein details-Element! Und das funktioniert im Prinzip ganz genau so, wie ich mir das denke:

<!-- https://wiki.selfhtml.org/wiki/HTML/Interaktiv/details -->
<details>
  <summary>
    Hintergrundinformationen
  </summary>
  <p>
    Das neue &lt;details&gt;-Element ermöglicht es, ganz ohne den Einsatz von JavaScript,
    ursprünglich verborgene Textinhalte aufzuklappen.
  </p>
</details>

Will man den Text standardmäßig eingeblendet, aber ausblendbar haben, ergänzt man im details-Element noch ein open:

<details open>
  [...]
</details>

Natürlich kann man das ganze noch mit etwas CSS stylen, aber im Prinzip ist das ganz genau das, was ich will. Und am besten: das Konzept ist viele, viele Jahre alt und wird mittlerweile breit von Browsern unterstützt. Auf der praktischen Website Can I use …? lässt sich nachvollziehen, dass die entsprechende Untersützung in Firefox (seit Version 49 von 2016), Chrome (im Prinzip seit Version 12 von 2011, vollständig seit Version 36 von 2014) und Safari (im Prinzip seit Version 6 von 2012, vollständig seit Version 12 von 2018) in auch nur halbwegs aktuellen Versionen vorhanden ist. Auch bei den mobilen Browsern unter iOS und Android sieht es gut aus. Problemkind ist wie immer Microsoft - aber die aktuellsten Versionen von Edge (leider erst seit Anfang 2020) untertützen das Element auch. Immerhin > 93% der Nutzer, so die Seite, sollten insofern mit dem Element klarkommen.

Wer auch für die restlichen 7% vorsorgen will, kann das mittels eines Polyfills tun. Beschreibungen dazu sind im SELFHTML-Wiki und im Modernizr-Github-Wiki verlinkt.

Das war mal ausnahmsweise eine angenehm schnelle Lösung für ein Problem!

Trackbacks

beats TEST blog am : Hintergrundinfo/Spoiler

Vorschau anzeigen
In diesem Blog habe ich einen interessanten Artikel gelesen. Er beschreibt, wie man einfach mit HTML aufklappdare Zusatzinformationen in seinen Blog integrieren kann. Natürlich will ich das hier ausprobieren. Klick mich Hier wird Hintergru

Netz - Rettung - Recht am : Der Teufel steckt im Detail

Vorschau anzeigen
Vor einigen Tagen hatte ich berichtet, wie sich mit mithilfe der &lt;details&gt;- und &lt;summary&gt;-Elemente von HTML 5 ganz leicht “ausklappbare” Erläuterungen - nur mit HTML und ggf. CSS, ohne Javascript - erzeugen lassen. Danach ist mir a

Mitch’s Manga Blog am : Ausklappbare Blöcke

Vorschau anzeigen
Thomas schreib in seinem Blog über ausklappbare Absätze und wie er sie in Serendipity umgesetzt hat. Da ich in einem der nächsten Blog-Artikel (so ich ihn denn mal schreibe ∗hust∗ ∗hust∗) ein Spoiler-Tag brauche, kommt

Netz - Rettung - Recht am : Serendipity 2.3.5 released

Vorschau anzeigen
Während im Hintergrund an Serendipity 2.4 geschraubt wird, haben sich wieder genügend Fehlerbehebungen angesammelt, die ein Bugfix-Release rechtfertigen, so dass am vergangenen Wochenende Serendipity 2.3.5 veröffentlicht wurde. Die Einzelheiten zu den Än

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Beat am :

Beat

Spannend! Kannst Du anstatt der Bilder nicht ein Live-Muster hier im Blogartikel zeigen?

Zumindest via WYSIWYG-Editor kriege ich das nämlich nicht hin.

Vielen Dank und Grüsse aus der Schweiz Be@t

Thomas Hochstein am :

Thomas Hochstein

Im Blog bräuchte das Element noch etwas Styling - aber es funktioniert im Prinzip.

Kann natürlich sein, dass der WYSIWYG-Editor die Elemente noch nicht (er)kennt und daher ausfiltert.

Thomas Hochstein am :

Thomas Hochstein

Ich habe das mal getestet, wie es mit "<details>" in s9y aussieht: wie erwartet muss man etwas am CSS schrauben, aber v.a. hat das so gar nicht mit dem Markdown-Plugin harmoniert. Also wurde aus "kurz mal anschauen und etwas CSS probieren" ein längerer Abstecher ins PHP-Markdown-Projekt; aber jetzt scheint es zu tun.

Blogbeitrag folgt.

Thomas Hühn am :

Thomas Hühn

Auf meinen Webseiten habe ich so das Impressum und die Datenschutzerklärung unten eingebunden. Direkt drin, ohne Link zu anderer Seite, trotzdem optisch unauffällig. Gefällt mir momentan ganz gut.

Thomas Hochstein am :

Thomas Hochstein

Oh, richtig. Das hatte ich schon wieder ganz vergessen. (Passiert mir offenbar häufiger, das.)

Thomas Hochstein am :

Thomas Hochstein

Was Du vielleicht noch überlegen könntest wäre den Cursor "über" dem "Aufklapp-Link" zu einem Zeiger zu machen, damit man auch optisch erkennt, dass sich da etwas ausklappen lässt; Serendipity macht das so, und mir gefällt das ganz gut:

summary { cursor: pointer; }

Thomas Hühn am :

Thomas Hühn

Guter Hinweis, muß ich mir mal merken.

Wobei im vorliegenden Fall ja gar kein echtes Eigeninteresse besteht, daß jemand dort klickt, sondern das nur aufgrund Deiner Zunft ist. :-)

Kommentar schreiben

HTML-Tags werden in ihre Entities umgewandelt.
Markdown-Formatierung erlaubt
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
BBCode-Formatierung erlaubt
Gravatar, Identicon/Ycon Autoren-Bilder werden unterstützt.
Formular-Optionen