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.