2012-11-12 7 views

Odpowiedz

273

Poniższy powinno załatwić sprawę:

div[class^='myclass'], div[class*=' myclass']{ 
    color: #F00; 
} 

Edycja: Dodano wieloznaczny (*) jako sugerowane przez Dawida

+26

Tylko jeśli klasa począwszy 'myclass' jest również * najpierw * nazwa-klasy zawarte w' atrybutu class'. Możesz spróbować [div [class * = myclass] {/ * ... stuff ... * /} '] (http://www.w3.org/TR/selectors/#selectors). –

+19

jeszcze lepiej; aby zapobiec kolizji 'div [class * = 'myclass'], div [class^= 'myclass']' –

+1

zgodził się, miałem zamiar edytować białą przestrzeń z poprzednią wersją w moim komentarzu (kiedy ją zapamiętałem), a następnie zobaczyłem, że już dodałeś ten szczegół! =) –

11

Nie jest to bezpośrednia odpowiedź na pytanie, jednak chciałbym zaproponować w w większości przypadków wystarczy ustawić wiele klas dla każdego elementu:

<div class="myclass one"></div> 
<div class="myclass two></div> 
<div class="myclass three"></div> 

In w ten sposób można ustawić reguły dla wszystkich elementów myclass, a następnie bardziej szczegółowe reguły dla one, two i three.

.myclass { color: #f00; } 

.two { font-weight: bold; } 

etc. 
+1

Korzystając z wielu klas, zamiast szukać prefiksów, oszczędzasz sobie także kilka bitew ze specyfiką i prędkością selektora. Selektory atrybutów są powolne, ale także są bardzo specyficzne w porównaniu do klas. +1 – Rowan

+0

Rozumiem. Używam WordPressa, który przypisuje klasy o podobnych nazwach w oparciu o "wtyczkę". Rozwiązanie atrybutu jest więc łatwiejsze niż próba dodania dodatkowych klas do każdej odpowiedniej strony. – jchwebdev

+0

Co do cholery? Ta odpowiedź dostała 3 upvotes, a jedna [dodana dokładnie w tym samym czasie] (http://stackoverflow.com/a/13352135/253468) zawierająca tę samą metodę otrzymała -4. – TWiStErRob

3

Można łatwo dodać wiele klas do div ... Więc:

<div class="myclass myclass-one"></div> 
<div class="myclass myclass-two"></div> 
<div class="myclass myclass-three"></div> 

Potem w rozmowie CSS klasy zakładowego stosować te same style:

.myclass {...} 

I nadal możesz używać innych klas takich jak to:

.myclass-three {...} 

Albo jeśli chcesz być bardziej szczegółowe w CSS jak poniżej:

.myclass.myclass-three {...} 
+0

Nie sądzę, że ta odpowiedź jest * taka * zła. Chciałbym po prostu zmienić inną klasę na myclass ... class = "myclass-one" – TMB

+0

teraz jest podobny do powyższego – TMB

+0

Nie widziałem tego wątku powyżej ... – TMB

Powiązane problemy