Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

<details> HTML-Element zur Anzeige zusätzlicher Informationen

Baseline
Weitgehend verfügbar
*

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.

* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.

Das <details>-Element von HTML erstellt ein aufklappbares Widget, dessen Informationen nur im geöffneten Zustand sichtbar sind. Eine Zusammenfassung oder Beschriftung muss mit dem <summary>-Element angegeben werden.

Ein solches Widget wird auf dem Bildschirm üblicherweise mit einem kleinen Dreieck dargestellt, das sich dreht, um den geöffneten oder geschlossenen Zustand anzuzeigen. Daneben steht eine Beschriftung. Der Inhalt des <summary>-Elements dient als Beschriftung des Widgets. Der Inhalt des <details>-Elements stellt die zugängliche Beschreibung für das <summary>-Element bereit.

Probieren Sie es aus

<details>
  <summary>Details</summary>
  Something small enough to escape casual notice.
</details>
details {
  border: 1px solid #aaaaaa;
  border-radius: 4px;
  padding: 0.5em 0.5em 0;
}

summary {
  font-weight: bold;
  margin: -0.5em -0.5em 0;
  padding: 0.5em;
}

details[open] {
  padding: 0.5em;
}

details[open] summary {
  border-bottom: 1px solid #aaaaaa;
  margin-bottom: 0.5em;
}

Attribute

Dieses Element unterstützt die globalen Attribute.

open

Dieses boolesche Attribut gibt an, ob die Details – also der Inhalt des <details>-Elements – derzeit sichtbar sind. Ist das Attribut vorhanden, werden die Details angezeigt; fehlt es, bleiben sie verborgen. Standardmäßig fehlt das Attribut, sodass die Details nicht sichtbar sind.

Hinweis: Damit die Details verborgen werden, müssen Sie dieses Attribut vollständig entfernen. open="false" macht die Details sichtbar, da es sich um ein boolesches Attribut handelt.

name

Mit diesem Attribut können mehrere <details>-Elemente miteinander verknüpft werden, sodass jeweils nur eines geöffnet sein kann. So lassen sich UI-Funktionen wie Akkordeons ohne Skripte erstellen.

Das name-Attribut legt einen Gruppennamen fest. Geben Sie mehreren <details>-Elementen denselben name-Wert, um sie zu gruppieren. Von den gruppierten <details>-Elementen kann jeweils nur eines geöffnet sein: Wird eines geöffnet, schließt sich ein anderes. Wenn mehrere gruppierte <details>-Elemente das open-Attribut besitzen, wird nur das erste in der Reihenfolge des Quellcodes geöffnet dargestellt.

Hinweis: <details>-Elemente müssen im Quellcode nicht unmittelbar nebeneinanderstehen, um zur selben Gruppe zu gehören.

Verwendungshinweise

Ein <details>-Widget kann sich in einem von zwei Zuständen befinden. Im standardmäßigen geschlossenen Zustand werden nur das Dreieck und die Beschriftung innerhalb von <summary> angezeigt. Fehlt ein <summary>-Element, wird stattdessen eine vom User Agent festgelegte Standardbeschriftung angezeigt.

Wenn Benutzer auf das Widget klicken oder es fokussieren und anschließend die Leertaste drücken, klappt es auf und zeigt seinen Inhalt. Da das Dreieck beim Öffnen und Schließen gedreht wird, werden solche Widgets manchmal als „Twisty“ bezeichnet.

Sie können das Widget mit CSS gestalten und es programmgesteuert öffnen und schließen, indem Sie sein open-Attribut setzen oder entfernen. Derzeit gibt es allerdings keine integrierte Möglichkeit, den Übergang zwischen geöffnetem und geschlossenem Zustand zu animieren.

Im geschlossenen Zustand ist das Widget standardmäßig nur so hoch, dass das Dreieck und die Zusammenfassung angezeigt werden. Im geöffneten Zustand erweitert es sich, um die enthaltenen Details anzuzeigen.

Vollständig standardkonforme Implementierungen wenden automatisch die CSS-Eigenschaft display: list-item auf das <summary>-Element an. Sie können dies oder das Pseudoelement ::marker verwenden, um das Widget anzupassen.

Ereignisse

Zusätzlich zu den üblichen Ereignissen, die HTML-Elemente unterstützen, unterstützt das <details>-Element das toggle-Ereignis. Es wird an das <details>-Element ausgelöst, wenn dessen Zustand zwischen geöffnet und geschlossen wechselt. Das Ereignis wird nach der Zustandsänderung ausgelöst. Ändert sich der Zustand jedoch mehrmals, bevor der Browser das Ereignis auslösen kann, werden die Ereignisse zusammengefasst, sodass nur eines ausgelöst wird.

Mit einem Event-Listener für das toggle-Ereignis können Sie erkennen, wann sich der Zustand des Widgets ändert:

js
details.addEventListener("toggle", (event) => {
  if (details.open) {
    /* the element was toggled open */
  } else {
    /* the element was toggled closed */
  }
});

Beispiele

Einfaches Beispiel für aufklappbare Details

Dieses Beispiel zeigt ein einfaches <details>-Element mit einem <summary>-Element.

html
<details>
  <summary>System Requirements</summary>
  <p>
    Requires a computer running an operating system. The computer must have some
    memory and ideally some kind of long-term storage. An input device as well
    as some form of output device is recommended.
  </p>
</details>

Ergebnis

Ein zunächst geöffnetes <details>-Element erstellen

Damit das <details>-Element anfangs geöffnet ist, fügen Sie das boolesche Attribut open hinzu:

html
<details open>
  <summary>System Requirements</summary>
  <p>
    Requires a computer running an operating system. The computer must have some
    memory and ideally some kind of long-term storage. An input device as well
    as some form of output device is recommended.
  </p>
</details>

Ergebnis

Mehrere benannte <details>-Elemente

Dieses Beispiel enthält mehrere <details>-Elemente mit demselben Namen, sodass jeweils nur eines geöffnet sein kann:

html
<details name="requirements">
  <summary>Graduation Requirements</summary>
  <p>
    Requires 40 credits, including a passing grade in health, geography,
    history, economics, and wood shop.
  </p>
</details>
<details name="requirements">
  <summary>System Requirements</summary>
  <p>
    Requires a computer running an operating system. The computer must have some
    memory and ideally some kind of long-term storage. An input device as well
    as some form of output device is recommended.
  </p>
</details>
<details name="requirements">
  <summary>Job Requirements</summary>
  <p>
    Requires knowledge of HTML, CSS, JavaScript, accessibility, web performance,
    privacy, security, and internationalization, as well as a dislike of
    broccoli.
  </p>
</details>

Ergebnis

Versuchen Sie, alle Widgets zu öffnen. Wenn Sie eines öffnen, schließen sich alle anderen automatisch.

Darstellung anpassen

Nun wenden wir etwas CSS an, um die Darstellung des <details>-Elements anzupassen.

CSS

css
details {
  font:
    16px "Open Sans",
    "Calibri",
    sans-serif;
  width: 620px;
}

details > summary {
  padding: 2px 6px;
  width: 15em;
  background-color: #dddddd;
  border: none;
  box-shadow: 3px 3px 4px black;
  cursor: pointer;
}

details > p {
  border-radius: 0 0 10px 10px;
  background-color: #dddddd;
  padding: 2px 6px;
  margin: 0;
  box-shadow: 3px 3px 4px black;
}

details:open > summary {
  background-color: #ccccff;
}

Dieses CSS erzeugt eine Darstellung ähnlich einer Oberfläche mit Tabs: Wenn Sie auf einen Tab klicken, öffnet er sich und zeigt seinen Inhalt.

Hinweis: In Browsern, die die Pseudoklasse :open nicht unterstützen, können Sie den Attributselektor details[open] verwenden, um das <details>-Element im geöffneten Zustand zu gestalten.

HTML

html
<details>
  <summary>System Requirements</summary>
  <p>
    Requires a computer running an operating system. The computer must have some
    memory and ideally some kind of long-term storage. An input device as well
    as some form of output device is recommended.
  </p>
</details>

Ergebnis

Auf der Seite zum <summary>-Element finden Sie ein Beispiel zur Anpassung des Widgets.

Technische Übersicht

Inhaltskategorien Flow content, sectioning root, interactive content, palpable content.
Zulässiger Inhalt Ein <summary>-Element, gefolgt von Flow content.
Weglassen von Tags Keines; sowohl das Start- als auch das End-Tag sind erforderlich.
Zulässige Elternelemente Jedes Element, das Flow content akzeptiert.
Implizite ARIA-Rolle group
Zulässige ARIA-Rollen Kein role zulässig
DOM-Schnittstelle [`HTMLDetailsElement`](/de/docs/Web/API/HTMLDetailsElement)

Spezifikationen

Spezifikation
HTML
# the-details-element

Browser-Kompatibilität

Siehe auch