2012-05-27 12 views
9

Her türlü şeyi denedim ama sanırım çok karmaşıklaşıyorum ve hatta selektörle takılmak için krom almayı başardım. Eminim gidecekseniz buSınıfı ile değil, sınıf b ile bir CSS seçici

Seç classa yapmak için basit bir yol değilim ama sadece gidecekseniz classb ve CSS3 pseudo classes ile buna

<div class="container"> 
    <div class="classa classb"></div> <!-- Dont Select --> 
    <div class="classa"></div> <!-- Select --> 
    <div class="classa"></div> <!-- Dont select last instance --> 
</div> 

cevap

12

Sana bildiğiniz gibi Ancak :not() seçilen (örnek here)

div.classa:not(.classb):not(:last-child) {}

kullanarak CSS3 ile yapabilirsiniz inanıyoruz, pek tarayıcı, bu destekler ..

+0

Ayrıca, son çocuk değilse son '.classa'yı hariç tutamazsınız. Http://stackoverflow.com/questions/10230416/is-it-possible-using-current-browsers-to-use-pseudo-classes-to-detect-first-and/10230466#10230466 – BoltClock

+0

Evet bu bir problemdir. test oldum – Akshat

0

son örneğini görmezden:

.classa:not(:last-child):not(.classb) { 
    // some rules... 
} 
2
.classa:not(.classb):not(:last-child) { 
    /* rules */ 
} 

Firefox 12, Chrome 19, Safari 5 ve Opera 10'da test edildi. Ne yazık ki işe yaramıyor (... tahmin et kim?) IE.

+0

IE'nizi yükseltmediniz. – BoltClock

+0

IE 9'da test ettim - çalışmıyor. Çalışsa bile, çoğu insan hala eski versiyonları kullanıyor ... – Simone

+0

Standart modda test ettiğinizden emin olun. IE9 bu seçicileri tam olarak destekler, ancak sadece standart modda. – BoltClock

1

Dene:

.classa:not(.classb):first-child { 
    background: red; 
} 

Bu olsa IE 7 veya 8'de çalışmayacak. JavaScript kolay bir yolu olabilir böylece

+0

Bu yanlış, çünkü ilk çocuk bir '.classa.classb'. – BoltClock