<summary>: Das Disclosure Summary-Element
Das <summary>
HTML-Element gibt eine Zusammenfassung, eine Bildunterschrift oder eine Legende für das <details>
-Element an. Durch Klicken auf das <summary>
-Element wird der Zustand des übergeordneten <details>
-Elements umgeschaltet (geöffnet oder geschlossen).
Probieren Sie es aus
Attribute
Dieses Element enthält nur die globalen Attribute.
Verwendungshinweise
Der Inhalt des <summary>
-Elements kann jeglichen Überschrifteninhalt, einfachen Text oder HTML umfassen, der innerhalb eines Absatzes verwendet werden kann.
Ein <summary>
-Element darf nur als erstes Kind eines <details>
-Elements verwendet werden. Wenn der Benutzer auf die Zusammenfassung klickt, wird das übergeordnete <details>
-Element geöffnet oder geschlossen, und dann wird ein toggle
-Ereignis an das <details>
-Element gesendet, das genutzt werden kann, um Sie über diesen Zustandswechsel zu informieren.
Der Inhalt des <details>
bietet die zugängliche Beschreibung für das <summary>
.
Standard-Labeltext
Wenn das erste Kind eines <details>
-Elements nicht ein <summary>
-Element ist, verwendet der User Agent einen Standardstring (typischerweise "Details") als Label für das Disclosure-Box.
Standardstil
Laut HTML-Spezifikation beinhaltet der Standardstil für <summary>
-Elemente display: list-item
. Dadurch ist es möglich, das Symbol, das als Disclosure-Widget neben dem Label angezeigt wird, vom Standard, der typischerweise ein Dreieck ist, zu ändern oder zu entfernen.
Sie können den Stil auch auf display: block
ändern, um das Disclosure-Dreieck zu entfernen.
Siehe den Abschnitt Browser-Kompatibilität für Details, da nicht alle Browser die volle Funktionalität dieses Elements unterstützen.
Für auf Webkit basierende Browser, wie Safari, ist es möglich, die Anzeigesteuerung des Symbols durch das nicht standardmäßige CSS-Pseudoelement ::-webkit-details-marker
zu kontrollieren. Um das Disclosure-Dreieck zu entfernen, verwenden Sie summary::-webkit-details-marker { display: none }
.
Beispiele
Im Folgenden sind einige Beispiele dargestellt, die die Verwendung von <summary>
zeigen. Weitere Beispiele finden Sie in der Dokumentation zum <details>
-Element.
Einfaches Beispiel
Ein einfaches Beispiel, das die Verwendung von <summary>
in einem <details>
-Element zeigt:
<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, so wie dies:
<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
Dies hat derzeit einige Abstandsprobleme, die mit CSS behoben werden könnten.
Warnung: Da das <summary>
-Element die Standardrolle button hat (die alle Rollen von Kindelementen entfernt), funktioniert dieses Beispiel nicht für Benutzer von unterstützenden Technologien wie Bildschirmlesegeräten. Das <h4>
wird seine Rolle entfernen und daher nicht als Überschrift für diese Benutzer behandelt.
HTML in Zusammenfassungen
Dieses Beispiel fügt dem <summary>
-Element einige Semantiken hinzu, um das Label als wichtig zu kennzeichnen:
<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
Änderung des Zusammenfassungssymbols
Das <summary>
-Elementmarker, das Disclosure-Dreieck, kann mit CSS angepasst werden. Der Marker kann mittels des ::marker
-Pseudoelements, welches die list-style
-Kurzschreibweise und ihre Langschreibkomponenten unterstützt, wie z.B. list-style-type
. Dies ermöglicht es, das Dreieck in ein Bild zu verwandeln (gewöhnlich mit list-style-image
) oder in eine Zeichenfolge (einschließlich Emojis). In diesem Beispiel ersetzen wir den Inhalt eines Disclosure-Widgets und entfernen das Symbol von einem anderen durch Setzen von list-style: none
bevor wir ein benutzerdefiniertes Disclosure-Symbol über generierten Inhalt hinzufügen.
CSS
Im ersten Disclosure-Widget gestalten wir den ::marker
, indem wir den content
basierend auf dem [open]
-Attribut des <details>
-Elements ändern. Für das zweite Widget entfernen wir den Marker mit den list-style
-Eigenschaften und fügen dann mit dem ::after
-Pseudoelement gestalteten generierten Inhalt hinzu. Wir schließen auch Stile für ::-webkit-details-marker
ein, um Safari anzusprechen. Der Selektor für das browser-spezifische Pseudoelement ist in einem :is()
-Pseudoklasse enthalten, sodass es die Selektorliste nicht ungültig macht.
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;
}
Der CSS schließt den [open]
Attributselektor ein, der nur dann entspricht, wenn das open
-Attribut vorhanden ist (wenn das <details>
geöffnet ist). Die :first-of-type
- und :last-of-type
-Pseudoklassen richten sich an die ersten und Geschwisterelemente des gleichen Typs. Wir haben das vorangestellte -webkit-
Pseudoelement in einer :is()
Pseudoklasse aufgenommen, da es eine fehlerverzeihende Selektorliste annimmt, sodass 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 Modul CSS-Selektoren.
HTML
<details>
<h1>Quotes from Helen Keller</h2>
<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 |
---|---|
Zulässiger Inhalt | Phrasierungsinhalt, optional vermischt mit Überschrifteninhalt |
Tag-Auslassung | Keine; sowohl das Start- als auch das End-Tag sind obligatorisch. |
Zulässige Eltern | Das <details> -Element. |
Implizite ARIA-Rolle | Keine entsprechende Rolle |
Zulässige ARIA-Rollen | Keine role erlaubt |
DOM-Schnittstelle | [`HTMLElement`](/de/docs/Web/API/HTMLElement) |
Spezifikationen
Specification |
---|
HTML Standard # the-summary-element |
Browser-Kompatibilität
BCD tables only load in the browser