Mein Ziel ist es, das CSS auf das letzte anzuwenden li
, aber das tut es nicht.
#refundReasonMenu #nav li:last-child {
border-bottom: 1px solid #b5b5b5;
}
<div id="refundReasonMenu">
<ul id="nav">
<li><a id="abc" href="#">abcde</a></li>
<li><a id="def" href="#">xyz</a></li>
</ul>
</div>
Wie kann ich nur das letzte Kind auswählen ?
css
css-selectors
Miral
quelle
quelle
:last-child
. Und es ist nicht so neugierig.:first-child
ist eine CSS2-Pseudoklasse,:last-child
eine CSS3-Pseudoklasse.:last-child
.Eine andere Lösung, die für Sie funktionieren könnte, besteht darin, die Beziehung umzukehren. Sie würden also den Rahmen für alle Listenelemente festlegen. Sie würden dann das erste Kind verwenden, um den Rand für das erste Element zu entfernen. Das erste Kind wird in allen Browsern statisch unterstützt (dh es kann nicht dynamisch über anderen Code hinzugefügt werden, das erste Kind ist jedoch ein CSS2-Selektor, während das letzte Kind in der CSS3-Spezifikation hinzugefügt wurde).
Hinweis: Dies funktioniert nur so, wie Sie es beabsichtigt haben, wenn Sie nur 2 Elemente in der Liste haben, wie in Ihrem Beispiel. Auf alle dritten Elemente und höher werden Rahmen angewendet.
quelle
Wenn Sie der Meinung sind, dass Sie Javascript verwenden können, können Sie seit der Unterstützung von
last-child
jQuery die CSS-Methode von jQuery verwenden, und das Gute daran ist, dass fast alle Browser unterstützt werdenBeispielcode:
Weitere Informationen finden Sie hier: http://api.jquery.com/css/#css2
quelle
$("#nav li:last-child").addClass('last-child')
damit Sie Ihr Styling in Ihren Stylesheets behalten können.div:last-child
als als auch enthältdiv.last-child
. Es scheint, dass die:last-child
Syntax ungültig ist und keine Klasse mit diesem Pseudo-Selektor angewendet wird.Wenn die Anzahl der Listenelemente festgelegt ist, können Sie den nebenstehenden Selektor verwenden. Wenn Sie beispielsweise nur drei
<li>
Elemente haben, können Sie das letzte auswählen<li>
mit:quelle
li + #nav li
wähltli
innen aus#nav
, was danach kommtli
. Ihr Selektor sollte einfach sein#nav li + li + li
.Wenn Sie häufig CSS3-Selektoren benötigen, können Sie jederzeit die selectivizr-Bibliothek auf Ihrer Site verwenden:
http://selectivizr.com/
Es ist ein JS-Skript, das Browsern, die sie sonst nicht unterstützen würden, Unterstützung für fast alle CSS3-Selektoren hinzufügt.
Werfen Sie es
<head>
mit einer IE-Bedingung in Ihr Tag:quelle
Die Pseudoklasse des letzten Kindes funktioniert im IE nicht
CSS-Kompatibilität und Internet Explorer
IE7 CSS-Selektoren: Wie sie fehlschlagen
quelle
Alternativ zur Verwendung einer Klasse können Sie eine detaillierte Liste verwenden, in der die untergeordneten dt-Elemente einen Stil und die untergeordneten dd-Elemente einen anderen Stil haben. Ihr Beispiel würde werden:
html:
Keine Methode ist besser als die andere und es liegt nur an den persönlichen Vorlieben.
quelle
Eine andere Möglichkeit besteht darin, den Selektor für das letzte Kind in jQuery zu verwenden und dann die Methode .css () zu verwenden. Seien Sie jedoch müde, da einige Leute noch in der Steinzeit sind und Browser mit deaktiviertem JavaScript verwenden.
quelle
Warum nicht den Rand am unteren Rand des UL anbringen?
quelle
padding-bottom
auf dem<ul>
Element odermargin-bottom
auf dem letzten<li>
Element haben, hat dies nicht die gewünschte Platzierung direkt unter dem letzten<li>
Element. Ansonsten ist dies eine gute Lösung.Wenn Sie die Elemente schweben lassen, können Sie die Reihenfolge umkehren
dh
float: right;
stattfloat: left;
Verwenden Sie dann diese Methode, um das erste untergeordnete Element einer Klasse auszuwählen.
Dies wendet die Klasse tatsächlich nur auf die LAST-Instanz an, da sie jetzt in umgekehrter Reihenfolge vorliegt.
Hier ist ein Arbeitsbeispiel für Sie:
quelle
Es ist schwer zu sagen, ohne den Rest Ihres CSS zu sehen, aber versuchen Sie, es
!important
vor der Rahmenfarbe hinzuzufügen , damit es so aussieht:quelle