<summary>: Das Element Disclosure Summary

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

* Some parts of this feature may have varying levels of support.

Das <summary> HTML Element gibt eine Zusammenfassung, Überschrift oder Legende für die Darstellung eines <details> Elements an. Durch Klicken auf das <summary> Element wird der Zustand des übergeordneten <details> Elements umgeschaltet, um es zu öffnen oder zu schließen.

Probieren Sie es aus

<details>
  <summary>
    I have keys but no doors. I have space but no room. You can enter but can’t
    leave. What am I?
  </summary>
  A keyboard.
</details>
details {
  border: 1px solid #aaa;
  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 #aaa;
  margin-bottom: 0.5em;
}

Attribute

Dieses Element schließt nur die globalen Attribute ein.

Nutzungshinweise

Der Inhalt des <summary> Elements kann jede Art von Überschrift, Klartext oder HTML sein, das innerhalb eines Absatzes verwendet werden kann.

Ein <summary> Element darf nur als das erste Kind eines <details> Elements verwendet werden. Wenn der Benutzer auf die Zusammenfassung klickt, wird das übergeordnete <details> Element geöffnet oder geschlossen, und ein toggle Ereignis wird an das <details> Element gesendet, das verwendet werden kann, um zu erkennen, wann diese Zustandsänderung eintritt.

Der Inhalt des <details> bietet die zugängliche Beschreibung für das <summary>.

Standardmäßiger Beschriftungstext

Wenn das erste Kind eines <details> Elements kein <summary> Element ist, wird der Benutzeragent eine Standardzeichenfolge (typischerweise "Details") als Beschriftung für das Offenlegungsfeld verwenden.

Standardstil

Laut HTML-Spezifikation umfasst der Standardstil für <summary> Elemente display: list-item. Dies ermöglicht es, das Symbol neben der Beschriftung als Offenlegungs-Widget vom Standard (in der Regel ein Dreieck) zu ändern oder zu entfernen.

Sie können den Stil auch auf display: block ändern, um das Offenlegungsdreieck zu entfernen.

Siehe den Abschnitt Browser-Kompatibilität für Details, da nicht alle Browser die vollständige Funktionalität dieses Elements unterstützen.

Für WebKit-basierte Browser wie Safari ist es möglich, die Anzeige des Symbols über das nicht standardmäßige CSS-Pseudoelement ::-webkit-details-marker zu steuern. Um das Offenlegungsdreieck zu entfernen, verwenden Sie summary::-webkit-details-marker { display: none }.

Beispiele

Unten sehen Sie einige Beispiele, die die Verwendung von <summary> zeigen. Weitere Beispiele finden Sie in der Dokumentation zum <details> Element.

Einfaches Beispiel

Ein einfaches Beispiel für die Verwendung von <summary> in einem <details> Element:

html
<details open>
  <summary>Overview</summary>
  <ol>
    <li>Cash on hand: $500.00</li>
    <li>Current invoice: $75.30</li>
    <li>Due date: 5/6/19</li>
  </ol>
</details>

Ergebnis

Zusammenfassungen als Überschriften

Sie können Überschriftselemente in <summary> verwenden, wie folgt:

html
<details open>
  <summary><h4>Overview</h4></summary>
  <ol>
    <li>Cash on hand: $500.00</li>
    <li>Current invoice: $75.30</li>
    <li>Due date: 5/6/19</li>
  </ol>
</details>

Ergebnis

Derzeit gibt es einige Abstandsprobleme, die mit CSS behoben werden könnten.

Warnung: Da das <summary> Element standardmäßig die Rolle button hat (was alle Rollen von Kindelementen entfernt), funktioniert dieses Beispiel nicht für Benutzer von unterstützenden Technologien wie Screenreadern. Das <h4> verliert seine Rolle und wird daher für diese Benutzer nicht als Überschrift behandelt.

HTML in Zusammenfassungen

Dieses Beispiel fügt dem <summary> Element einige Semantiken hinzu, um die Beschriftung als wichtig hervorzuheben:

html
<details open>
  <summary><strong>Overview</strong></summary>
  <ol>
    <li>Cash on hand: $500.00</li>
    <li>Current invoice: $75.30</li>
    <li>Due date: 5/6/19</li>
  </ol>
</details>

Ergebnis

Symbol des Zusammenfassungs-Widgets ändern

Das Symbol des <summary> Elements, das Offenlegungsdreieck, kann mit CSS angepasst werden. Das Symbol kann mit dem ::marker Pseudoelement angesprochen werden, das die list-style Shorthand-Eigenschaft und ihre längerfristigen Komponenteneigenschaften, wie list-style-type, akzeptiert. Dadurch kann das Dreieck in ein Bild (normalerweise mit list-style-image) oder eine Zeichenkette (einschließlich Emojis) geändert werden. In diesem Beispiel ersetzen wir den Inhalt eines Offenlegungs-Widgets und entfernen das Symbol von einem anderen, indem wir list-style: none setzen, bevor ein benutzerdefiniertes Offenlegungssymbol über generierten Inhalt hinzugefügt wird.

CSS

Im ersten Offenlegungs-Widget gestalten wir das ::marker, indem wir den content basierend auf das [open] Attribut des <details> Elements ändern. Für das zweite Widget entfernen wir das Symbol mit list-style Eigenschaften, dann fügen wir gestylten generierten Inhalt mit dem ::after Pseudoelement hinzu. Wir enthalten auch Stile für ::-webkit-details-marker, um Safari anzusprechen. Der Selektor für das browserspezifische Pseudoelement ist in einer :is() Pseudoklasse enthalten, damit es die Selektorliste nicht ungültig macht.

css
details {
  font-size: 1rem;
  font-family: "Open Sans", Calibri, sans-serif;
  border: solid;
  padding: 2px 6px;
  margin-bottom: 1em;
}

details:first-of-type summary::marker,
:is(::-webkit-details-marker) {
  content: "+ ";
  font-family: monospace;
  color: red;
  font-weight: bold;
}

details[open]:first-of-type summary::marker {
  content: "− ";
}

details:last-of-type summary {
  list-style: none;
  &::after {
    content: "+";
    color: white;
    background-color: darkgreen;
    border-radius: 1em;
    font-weight: bold;
    padding: 0 5px;
    margin-inline-start: 5px;
  }
  [open] &::after {
    content: "−";
  }
}
details:last-of-type summary::-webkit-details-marker {
  display: none;
}

Das CSS beinhaltet den [open] Attributselektor, der nur dann passt, wenn das open-Attribut vorhanden ist (wenn die <details> geöffnet sind). Die :first-of-type und :last-of-type Pseudoklassen zielen auf das erste und Geschwisterelemente desselben Typs ab. Wir haben das mit -webkit- vorangestellte Pseudoelement innerhalb einer :is() Pseudoklasse enthalten, da es eine verzeihende Selektorliste verwendet, so dass, wenn das vorangestellte Pseudoelement in einem Browser ungültig ist, der gesamte Selektorblock nicht ungültig wird. Wir haben auch CSS Verschachtelung verwendet. Siehe das CSS Selektoren Modul.

HTML

html
<h1>Quotes from Helen Keller</h1>

<details>
  <summary>On women's rights</summary>
  <p>
    <q>We have prayed, we have coaxed, we have begged, for the vote, with the
      hope that men, out of chivalry, would bestow equal rights upon women and
      take them into partnership in the affairs of the state. We hoped that
      their common sense would triumph over prejudices and stupidity. We thought
      their boasted sense of justice would overcome the errors that so often
      fetter the human spirit; but we have always gone away empty-handed. We
      shall beg no more.</q>
  </p>
</details>

<details>
  <summary>On optimism</summary>
  <p>
    <q>Optimism is the faith that leads to achievement; nothing can be done
      without hope.</q>
  </p>
</details>

Ergebnis

Technische Zusammenfassung

Inhaltskategorien keine
Erlaubter Inhalt Phrasing content, optional gemischt mit Heading content
Tag-Angaben weglassen Keine; sowohl das Start- als auch das End-Tag sind obligatorisch.
Zulässige Eltern Das <details> Element.
Implizierte ARIA-Rolle Keine entsprechende Rolle
Erlaubte ARIA-Rollen Keine role erlaubt
DOM-Schnittstelle [`HTMLElement`](/de/docs/Web/API/HTMLElement)

Spezifikationen

Specification
HTML
# the-summary-element

Browser-Kompatibilität

Siehe auch