Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
::after
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
In CSS erzeugt::after einPseudo-Element, das das letzte Kindelement des ausgewählten Elements ist. Es wird oft verwendet, um kosmetischen Inhalt mit dercontent-Eigenschaft zu einem Element hinzuzufügen. Es ist standardmäßig inline.
In diesem Artikel
Probieren Sie es aus
a::after { content: " (" attr(href) ")";}.dead-link { text-decoration: line-through;}.dead-link::after { content: url("/shared-assets/images/examples/warning.svg"); display: inline-block; width: 12px; height: 12px;}<p> The sailfish is named for its sail-like dorsal fin and is widely considered the fastest fish in the ocean. <a href="https://en.wikipedia.org/wiki/Sailfish" >You can read more about it here</a >.</p><p> The red lionfish is a predatory scorpionfish that lives on coral reefs of the Indo-Pacific Ocean and more recently in the western Atlantic. <a href="">You can read more about it here</a>.</p>Syntax
::after { content: /* value */; /* properties */}Beschreibung
Das::after-Pseudo-Element ist ein Inline-Block, der als unmittelbares Kindelement des Elements erzeugt wird, mit dem es assoziiert ist oder des "auslösenden Elements". Es wird häufig verwendet, um über diecontent-Eigenschaft kosmetischen Inhalt zu einem Element hinzuzufügen, wie z. B. Symbole, Anführungszeichen oder andere Dekorationen.
::after-Pseudo-Elemente können nicht aufersetzte Elemente wie<img> angewendet werden, deren Inhalt durch externe Ressourcen bestimmt wird und nicht von den Stilen des aktuellen Dokuments beeinflusst wird.
Ein::after-Pseudo-Element mit einemdisplay-Wert vonlist-item verhält sich wie ein Listenelement und kann daher ebenso ein::marker-Pseudo-Element erzeugen wie ein<li>-Element.
Wenn diecontent-Eigenschaft nicht angegeben ist, einen ungültigen Wert hat odernormal odernone als Wert hat, wird das::after-Pseudo-Element nicht gerendert. Es verhält sich so, als wäredisplay: none gesetzt.
Hinweis:DieSelectors Level 3-Spezifikation führte die Doppelpunkt-Notation::after ein, umPseudo-Klassen vonPseudo-Elementen zu unterscheiden. Browser akzeptieren auch die Einfachpunkt-Notation:after, die in CSS2 eingeführt wurde.
Standardmäßig teilen sich die Pseudo-Elemente::before und::after denselben Stapelkontext wie ihr übergeordnetes Element. Wenn keinz-index explizit gesetzt wird, erscheint der generierte Inhalt des::after-Pseudo-Elements über dem des::before-Pseudo-Elements, da::after später im DOM-Fluss gerendert wird.
Barrierefreiheit
Die Verwendung eines::after-Pseudo-Elements zum Hinzufügen von Inhalten wird nicht empfohlen, da es von Screenreadern nicht zuverlässig erfasst wird.
Beispiele
>Grundlegende Verwendung
Lassen Sie uns zwei Klassen erstellen: eine für langweilige Absätze und eine für aufregende. Wir können diese Klassen verwenden, um Pseudo-Elemente am Ende von Absätzen hinzuzufügen.
HTML
<p>Here is some plain old boring text.</p><p>Here is some normal text that is neither boring nor exciting.</p><p>Contributing to MDN is fun.</p>CSS
.exciting-text::after { content: " <- EXCITING!"; color: darkgreen; font-weight: bolder;}.boring-text::after { content: " <- BORING"; color: darkviolet; font-weight: bolder;}Ergebnis
Dekoratives Beispiel
Wir können Text oder Bilder in dercontent-Eigenschaft fast beliebig gestalten.
HTML
<span>Look at the orange box after this text. </span>CSS
.ribbon { background-color: #5bc8f7;}.ribbon::after { content: "This is a fancy orange box."; background-color: #ffba10; border-color: black; border-style: dotted;}Ergebnis
Tooltips
Dieses Beispiel verwendet::after in Verbindung mit demattr()-CSS-Ausdruck und einemdata-descriptionbenutzerdefinierten Datenattribut, um Tooltips zu erstellen. Kein JavaScript erforderlich!
Wir können auch Tastaturnutzern mit dieser Technik helfen, indem wir eintabindex von0 hinzufügen, um jedesspan tastaturfokussierbar zu machen, und einen CSS-:focus-Selektor verwenden. Dies zeigt, wie flexibel::before und::after sein können, obwohl für die barrierefreiste Erfahrung ein semantisches Offenlegungs-Widget, das auf andere Weise erstellt wurde (z. B. mitdetails und summary-Elementen), wahrscheinlich besser geeignet ist.
HTML
<p> Here we have some <span tabindex="0" data-description="collection of words and punctuation"> text </span> with a few <span tabindex="0" data-description="small popups that appear when hovering"> tooltips</span >.</p>CSS
span[data-description] { position: relative; text-decoration: underline; color: blue; cursor: help;}span[data-description]:hover::after,span[data-description]:focus::after { content: attr(data-description); position: absolute; left: 0; top: 24px; min-width: 200px; border: 1px #aaaaaa solid; border-radius: 10px; background-color: #ffffcc; padding: 12px; color: black; font-size: 14px; z-index: 1;}Ergebnis
::after::marker verschachtelte Pseudo-Elemente
Das::after::markerverschachtelte Pseudo-Element wählt das Listen-::marker eines::after-Pseudo-Elements aus, das selbst ein Listenelement ist, d.h. es hat seinedisplay-Eigenschaft auflist-item gesetzt.
In dieser Demo erzeugen wir zusätzliche Listenelemente vor und nach einem Listennavigationsmenü mit::before und::after (setzen diese aufdisplay: list-item, damit sie sich wie Listenelemente verhalten). Wir verwenden dannul::before::marker undul::after::marker, um ihren Listenmarkern eine andere Farbe zu geben.
HTML
<ul> <li><a href="#">Introduction</a></li> <li><a href="#">Getting started</a></li> <li><a href="#">Understanding the basics</a></li></ul>CSS
ul { font-size: 1.5rem; font-family: "Helvetica", "Arial", sans-serif;}ul::before,ul::after { display: list-item; color: orange;}ul::before { content: "Start";}ul::after { content: "End";}ul::before::marker,ul::after::marker { color: red;}Ergebnis
Während die Listenkugeln der drei Navigationselemente erzeugt werden, weil sie<li>-Elemente sind, wurden "Start" und "Ende" über Pseudo-Elemente eingefügt, und::marker wird verwendet, um ihre Kugeln zu stylen.
Spezifikationen
| Specification |
|---|
| CSS Pseudo-Elements Module Level 4> # generated-content> |