2010-03-31 12 views
273

Mam regułę stylu Chcę zastosować do znacznika, gdy ma style dwóch. Czy istnieje sposób, aby wykonać to bez JavaScript? Innymi słowy:Wybierz element na podstawie wielu klas

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

chcę zastosować w moim stylu regułę tylko jeśli li ma zarówno .left i .ui-class-selector klas stosowane.

Odpowiedz

471

Masz na myśli dwie klasy? „łańcuch” selektorów (bez spacji między nimi):

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

ten wybiera wszystkie elementy z class1 które również mają class2.

W twoim przypadku:

li.left.ui-class-selector { 

} 

Oficjalna dokumentacja: CSS2 class selectors.


Jak akamike zwraca uwagę na problem z tej metody w programie Internet Explorer 6 może chcesz przeczytać: Use double classes in IE6 CSS?

+6

Należy pamiętać, że IE6 nie lubi tych, ponieważ nie czyta łańcuch klas. Spojrzymy tylko na ostatnią klasę w łańcuchu. – akamike

+10

to nie jest :) Wszystkie główne strony internetowe spadły, upadają lub planują zrzucić w najbliższej przyszłości obsługę IE6. Zrób to samo! –

+0

@Andreas Bonini: Tak, wiem. Szczerze mówiąc już nie dbam o IE6 przez długi czas. (Usunąłem swój poprzedni komentarz, ponieważ znalazłem inne pytanie, które zajmuje się tym problemem.) –

18

selektorów łańcuchowe nie są ograniczone tylko do klas, można to zrobić dla obu klas i ids.

Klasy

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

Class & Id

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

Id & Id

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

Wszystkie dobre aktualne przeglądarki obsługują to, oprócz IE 6, wybiera na podstawie ostatniego selektora na liście. Tak więc ".classA.classB" wybierze na podstawie ".classB".

Twoim przypadku

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

lub

.left.ui-class-selector { 
/*style here*/ 
} 
Powiązane problemy