2012-02-10 22 views
82

Listenin sonuncu çocuğunu seçmeme izin veren bir css seçici arıyorum.CSS last-child (-1)

<ul> 
    <li>1</li> 
    <li>2</li> 
    <li>3</li> 
    <li>4</li> 
    <li>5</li> <!-- select the pre last item dynamically no matter how long this list is --> 
    <li>6</li> 
</ul> 

Statik yöntemi:

ul li:nth-child(5) 

Dinamik yöntemi:

ul li:last-child(-1) 

doğrulamaz tabii ki, aynı zamanda n'inci-son-çocuk görünmüyor dinamik bir yol sağla .. javascript'e geri dönebilirim ama merak ettiğim bir css yolu olup olmadığını merak ediyorum

+7

Genellikle "ikinci son" olarak adlandırılır. Bunun için başka bir süslü kelime de var: "sondan bir önceki". – BoltClock

+1

@BoltClock "Penultimate" kelimesini seviyorum. Şimdi bir snarky Facebook güncellemesinde kullanacağım. –

+0

Olası çoğaltılabilir [Css ile ikinci son elemanı seç] (http://stackoverflow.com/questions/5418744/select-second-last-element-with-css) –

cevap

167

Siz kullanabilirsiniz :nth-last-child(); Aslında, :nth-last-of-type() dışında başka ne kullanabileceğinizi bilmiyorum. "Dinamik" ile ne demek istediğinden emin değilim, ancak listeye daha fazla çocuk eklendiğinde, stilin ikinci ikinci çocuğa uygulanıp uygulanmayacağı anlamına gelirse, evet öyle olacaktır. Eğer bir sınıf ile o öğeyi etiketlemek için PHP edemeyip Interactive fiddle.

ul li:nth-last-child(2) 
+0

Tamam, işe yarıyor! Kod yorumlayıcı (jsfiddle) bunu doğrulamadı .. Kendi tarafında bir böcek tahmin! teşekkürler –

+0

IE7 ve IE8 Desteği Yok –

+4

@David Allen: '' nth-child (5) 've': last-child' kullanmaya çalışıyorsa, umurunda olduğunu sanmıyorum. Bunun gibi yorumlarda ya soruya devam edilmeli ya da kendilerine bırakılmalı. – BoltClock

1

jQuery kullanmak daha iyidir.

jQuery(document).ready(function() { 
    $count = jQuery("ul li").size() - 1; 
    alert($count); 
    jQuery("ul li:nth-child("+$count+")").css("color","red"); 
}); 
+3

JQuery 'nin "sonuncu çocuk"()' u uygulamaması tamamen rahatsız edici bir şeydir, çünkü [John kimsenin kullanmadığını düşünüyor] (http://ejohn.org/blog/selectors-that-people-actually-use) . – BoltClock

+0

Python ;-) ontopic ile etiketlemeyi tercih ederim: Eh css bu şekilde iyi görünüyor, belki de jsfiddle hiç kimsenin bunu kullanmadığını düşünüyor :-) –

+0

@ArgsKwargs: Garip neden jsFiddle'da işe yaramaz. Bunu yorumlamak tarayıcıya kalmış; kendi CSS motoru yok. – BoltClock