2011-10-23 28 views
17

şu html düşünün:CSS hiçbir kardeş seçicisi

<div> 
    <div class="iwant" /> 
    <div class="idontwant" /> 
</div> 
<div> 
    <div class="iwant" /> 
</div> 

Ben sınıfı ile kardeşi var YAPMAYIN tüm iwant seçeceklerini ifade (yani html değiştiremezsiniz içeriği tarama) bir selektör ilgileniyorum idontwant.

cevap

34

Öğeleri (veya değil) sınıf ile eşleştirmek için bir kardeş seçici yok. Aklıma

yakın selektör

.iwant:only-child 

olduğunu Ama bu selektör türden bağımsız veya sınıfın ebeveyn div çocukları olarak o div class="iwant" dışında başka unsurlar olmayacağı anlamına gelir. Bu, HTML'inizin yapısına bağlı olarak ihtiyacınızı karşılayabilir, bu yüzden denemeye değer. Sınıf isimleri sizin için bir sorun olsa da, o zaman muhtemelen bir çözüm çok fazla değil, çünkü sınıf tarafından filtrelenen ve geri kalanı yok sayan bir CSS içinde bir :only-of-class sözde sınıf yoktur.

+0

Bir çözüm olabilir ama, fazladan 'div's olabilir çünkü daha genel bir şey tercih ederim. İyi düşünmek olsa da. –

1

Negatif kardeşi CSS seçicisi yok. Sonra .idontwant de stilleri sıfırlama, yeni stiller ayarlamak için kardeş seçici kullanın:

div.iwant { 
    /*Set CSS here*/ 
    display: inline; 
} 
div.iwant ~ div.idontwant { 
    /*Reset CSS*/ 
    display: block /* Default of DIV is block*/ 
} 
+0

Bu, her sınıfın karşılıklı olarak özel olması nedeniyle gereksizdir. – BoltClock

+0

@BoltClock Bununla ne demek istiyorsun? Div.iwant ~ div.idontwant seçicisi, div.iwant'den daha belirgindir. –

+2

Stilleri ayarlamıyorum, bu öğeyi tarayıcıya almak istiyorum ve bunu bir sorguda yapmayı tercih ediyorum. –

İlgili konular