2011-10-07 29 views
24

Son/saniye .heading stilini oluşturmak istiyorum. Benim içinKullanımı: Sınıf seçicisi olan son çocuk

<ul> 
    <li class="heading">Hello world</li> 
    <li>Hello world</li> 
    <li>Hello world</li> 
    <li class="heading">Hello world</li> 
    <li>Hello world</li> 
</ul> 

Ne

ul li.heading:last-child { 
    background: black; 
} 

ne de

ul li.heading:nth-child(2) { 
    background: black; 
} 

çalışır. Neden ve bu stilleri <li>'a nasıl uygularım? Sahte sınıf seçmenler sınıf seçmenleriyle çalışmıyor gibi görünüyor. Daha önce kullandığım yemin edemem garipti.

Güncelleme: Oops, tamamen the jsfiddle unuttu.

+0

Bir sınıfın alt kümesini bu sahte sınıf seçicilerle seçebilmenin bir yolu olduğuna inanmıyorum. Her zaman bir listede 4. başlık mı yoksa her zaman stilde yapmak istediğiniz sınıfın ikinci örneği mi? Eğer her zaman 4. Eğer cevap-tipi de kullanabilmeniz için aşağıdaki cevap iyi çalışmalıdır. – KryptoniteDove

+0

Bu sorunu biçimlendirme/semantik/html düzeyinde düzeltmezseniz kendi hayatınızı zorlaştırırsınız. Yuvalanmış 'ul'leri kullanmak, CSS2 seçicileriyle tam olarak istediğiniz şeyi yapmanıza izin verecektir. –

cevap

24

İfadende oldu: "Ben ikinci/son .heading stil vermek istersek" Bu ul

birinci ve dördüncü çocuğu bu bir deneyin olduğunu

<ul> 
    <li class="heading">Hello world</li> 
    <li class="heading">Hello world</li> 
    <li class="heading">Hello world</li> 
    <li class="heading">Hello world</li> 
    <li class="heading">Hello world</li> 
</ul> 

Ve CSS: Eğer böyle kod yazmak zorunda olacağı anlamına gelecektir

Else

ul li.heading:last-child { 
    background: black; 
} 
ul li.heading:nth-child(2) { 
    background: black; 
} 

, geçerli html-kodu ile şu yazılır:

ul li.heading:nth-child(4) { 
    background: black; 
} 
ul li.heading:nth-child(1) { 
    background: black; 
} 

Düşüncenizi anlıyorum, ancak "başlık" sınıfındaki lis ikinci veya son çocuk değil.

4

Bunun nedeni, li.heading'un son çocuk olmaması ve ikinci çocuğun olmamasıdır.

ul li.heading:nth-child(4) { 
    background: black; 
} 
4
ul li.heading:nth-last-child(2) 

2 Eğer < li class = "başlığı" sonra ne kadar <li> birçok biliyor demektir bizim durumumuzda > o alttan ikinci sırada.

İlgili konular