DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!
Der Selektor :last-child ermöglicht es Ihnen, das letzte direkt in seinem enthaltenden Element befindliche Element anzusprechen. Er ist in der CSS Selectors Level 3-Spezifikation als „strukturelle Pseudoklasse“ definiert, was bedeutet, dass er zur Gestaltung von Inhalten basierend auf seiner Beziehung zu übergeordneten und Geschwisterinhalten verwendet wird.
Angenommen, wir haben einen Artikel und möchten den letzten Absatz kleiner gestalten, um als Abschluss des Inhalts zu dienen (wie eine Anmerkung des Redakteurs).
<article>
<p>Lorem ipsum...</p>
<p>Dolor sit amet...</p>
<p>Consectetur adipisicing...</p>
<p>Last paragraph...</p>
</article>
Anstatt eine Klasse zu verwenden (z. B. .last), können wir :last-child verwenden, um ihn auszuwählen.
p:last-child {
font-size: 0.75em;
}
Die Verwendung von :last-child ähnelt stark :last-of-type, jedoch mit einem **kritischen Unterschied:** es ist weniger spezifisch. :last-child versucht nur, das allerletzte Kind eines Elternelements abzugleichen, während last-of-type das letzte Vorkommen eines bestimmten Elements abgleicht, auch wenn es nicht das allerletzte im HTML ist. Im obigen Beispiel wäre das Ergebnis dasselbe, nur weil das letzte Kind des article zufällig auch das letzte p-Element ist. Dies zeigt die Stärke von :last-child: es kann ein Element in Bezug auf alle seine Geschwister identifizieren, **nicht nur Geschwister desselben Typs**.
Das vollständigerere Beispiel unten demonstriert die Verwendung von :last-child und einer verwandten Pseudoklassen-Selektor, :first-child.
Check out this Pen!
Weitere Ressourcen
- Verwandt mit: first-child, last-of-type, :first-of-type
- Mozilla Docs
Browser-Unterstützung
| Chrome | Safari | Firefox | Opera | IE | Android | iOS |
|---|---|---|---|---|---|---|
| Alle | 3.2+ | Alle | 9.5+ | 9+ | Alle | Alle |
:last-child wurde im CSS Selectors Module 3 eingeführt, was bedeutet, dass alte Browserversionen es nicht unterstützen. Die Unterstützung moderner Browser ist jedoch tadellos, und die neuen Pseudoselektoren werden in Produktionsumgebungen weit verbreitet eingesetzt. Wenn Sie ältere Browser unterstützen müssen, können Sie entweder ein Polyfill für IE verwenden oder diese Selektoren auf nicht kritische Weise à la progressive enhancement verwenden, was empfohlen wird.
312312312312
tha a gud site lol
Funktioniert nicht, wenn die Elemente die Eigenschaft `display` auf `none` gesetzt haben. Das versteckte Element wird immer noch als letztes Kind betrachtet. Ich schätze, technisch ist das korrekt, aber in vielen Fällen ungewollt.
Hallo Natalie. Du hast ein schönes Lächeln.
LOL
@Eddy, hör auf zu schleichen, das ist nicht FB.
Hallo Chris, unterstützt `last-child` auch für Listen, ich meine für `li:last-child`?
Ich habe es versucht, aber es funktioniert nicht.
Ja, du kannst es für Listen verwenden.
Muss ich zwangsläufig einen Selektor vor :last-child angeben?
Vielleicht weiß ich nicht, ob das letzte Element ein Absatz, ein Div-Container oder was auch immer ist.
Ist das auch richtig?
Du musst den * Selektor verwenden, um dem Browser mitzuteilen, dass alle Elemente berücksichtigt werden sollen.
#my-container > *:last-child {
…
}
Laut dieser Antwort auf Stack Overflow ist der universelle Selektor nicht notwendig. In der Zwischenzeit habe ich es auf verschiedenen Websites ausprobiert und kann bestätigen, dass es ohne den universellen Selektor perfekt funktioniert.
Kann auch bestätigen, funktioniert ohne den universellen Selektor einwandfrei.
Oh super, dieser * Selektor hat für mich funktioniert. Danke an @Rico Mossesgeld.
Schöner Artikel, danke!
Ich verwende mehr li. Wie kann ich ein bestimmtes li (z.B. das 3. li) ändern?
Sie können den nth-child()-Selektor verwenden.
your li:nth-child() {your style}geben Sie einfach die Nummer des li ein, z. B. nth-child(3).
Ich habe ein Problem bei der Anwendung von :last-child.
Bitte siehe http://codepen.io/anon/pen/ZYaqgp.
Ich möchte den letzten unteren Rahmen im Widget-Bereich entfernen. Wenn ich den zweiten Codeblock deaktiviere und den letzten - mit dem :last-child Code - aktiviere, werden trotzdem alle Widget-Ränder in diesem Bereich entfernt.
Irgendwelche Vorschläge bitte?
.home-middle-right > .entry:last-child
123412341234
Alle Anker in ul anwenden, außer dem letzten Anker.
.loginNav li a:last-child { border-left:0;}
Ich versuche, ein Endzeichen nach dem letzten Absatz im Inhalt in WordPress einzufügen. Innerhalb des Inhalts befindet sich ein Blockquote, in den WP automatisch Absätze einfügt. Das `p:last-child`-Zeichen wird im letzten Absatz des Blockquotes anstatt im letzten Absatz des Hauptinhalts angezeigt. Ich kann nicht herausfinden, wie ich die Absätze innerhalb des Blockquotes überspringen kann.
Hallo Trishah! Diese Funktion sollte verhindern, dass WordPress automatisch Absatz-Tags hinzufügt.
Seien Sie jedoch vorsichtig, da dies Absätze aus dem gesamten Inhalt entfernt. Hier ist die WordPress-Referenz für den Filter:
https://codex.wordpress.org/Function_Reference/wpautop#Disabling_the_filter
Hallo Geoff. Vielen Dank für den Tipp. Ich kann sehen, wo Ihre Lösung den Arbeitsablauf bei der Verwendung des visuellen Editors wirklich verändern könnte.
Nachdem ich darüber nachgedacht habe, habe ich eine CSS-Lösung entwickelt, die funktioniert. Da das Endzeichen sowohl im letzten Absatz des Abschnitts als auch im letzten Absatz des Blockquotes platziert wurde, musste ich es nur im Blockquote stoppen, wie folgt:
.content p:last-child::after {font-family: 'Font Awesome 5 Pro';
content: '\f06c';
margin:0 0 0 15px;
color: #009acc;
}
.content blockquote p:last-child::after {
content: '';
}
Nochmals vielen Dank!
Großartig und eine schöne Lösung!
Wie verwende ich Pseudoklassen auf dem letzten li-Element?
Was ist der am wenigsten komplizierte Weg, das
last-childauszuwählen, aber nur, wenn es *nicht* dasonly-childist?Anders ausgedrückt, gibt es einen einfacheren Selektor als
:last-child:not(only-child)?