Birden çok sınıfa dayalı öğe seçme


360

İki sınıf olduğunda bir etikete uygulamak istediğiniz bir stil kuralı var . Bunu JavaScript olmadan yapmanın bir yolu var mı? Diğer bir deyişle:

<li class='left ui-class-selector'>

Benim stil kuralını uygulamak istediğiniz sadece eğer lihem vardır .leftve .ui-class-selectoruygulamalı sınıflar.


Yanıtlar:


595

İki sınıf mı demek istiyorsun? Seçicileri "Zincirle" (aralarında boşluk yok):

.class1.class2 {
    /* style here */
}

Bu, sahip class1olduğu tüm öğeleri seçer class2.

Senin durumunda:

li.left.ui-class-selector {

}

Resmi belgeler: CSS2 sınıfı seçicileri .


Akamike , Internet Explorer 6'da bu yöntemle ilgili bir soruna işaret ettiği gibi şunu okumak isteyebilirsiniz: IE6 CSS'de çift sınıflar mı kullanıyorsunuz?


6
Sınıf zincirini okumadığından IE6'nın bunlardan hoşlanmadığını lütfen unutmayın. Sadece zincirdeki son sınıfa bakacaktır.
akamike

16
değil :) Tüm büyük web siteleri düştü, düşüyor veya yakın gelecekte IE6 için destek planlıyoruz .. Aynı şeyi yapın!
Thomas Bonini

@Andreas Bonini: Evet, biliyorum. Dürüst olmak gerekirse zaten uzun zamandır IE6 umurumda değil. (Bu sorunla ilgili diğer soruyu bulduğum için önceki yorumumu sildim.)
Felix Kling

Evet, bunları IE6'da hiç kullanamazsınız, öğelerinizi şekillendirmek için yalnızca daha uzun rotalara gidebilirsiniz. Örneğin, her sınıfı ayrı ayrı şekillendirin ve olabildiğince geçersiz kılmak için uygun CSS özgünlüğünü kullanın.
akamike

2
Ben severek IE6 mezarında dans hatırlıyorum. Bu yıl IE10'u desteklemek zorunda kalmadım ve IE'yi tamamen bırakmak ufukta. Geleceği seviyorum. ☺
Michael Scheper

22

Zincir seçiciler sadece sınıflarla sınırlı değildir, hem sınıflar hem de kimlikler için yapabilirsiniz.

Sınıflar

.classA.classB {
/*style here*/
}

Sınıf kimliği

.classA#idB {
/*style here*/
}

Yaptım

#idA#idB {
/*style here*/
}

IE 6 dışındaki tüm iyi tarayıcılar bunu destekler, listedeki son seçiciye göre seçer. Yani ".classA.classB" sadece ".classB" ye dayalı olarak seçecektir.

Davan için

li.left.ui-class-selector {
/*style here*/
}

veya

.left.ui-class-selector {
/*style here*/
}

9
Id & Id kavramsal olarak garip bir seçicidir.
Félix Gagnon-Grenier

0

Bu çözümleri kullanabilirsiniz:

CSS kuralları aşağıdaki iki sınıfa sahip tüm etiketler için geçerlidir:

.left.ui-class-selector {
    /*style here*/
}

CSS kuralları <li>, aşağıdaki iki sınıfa sahip tüm etiketler için geçerlidir :

li.left.ui-class-selector {
   /*style here*/
}

jQuery çözümü:

$("li.left.ui-class-selector").css("color", "red");

Javascript çözümü:

document.querySelector("li.left.ui-class-selector").style.color = "red";
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.