2010-03-16 6 views
29

Ich bin nicht sicher, dass dies möglich ist, aber gibt es eine Syntax in CSS verwendet werden, wenn Sie ein Element basierend auf der Kombination von Klassen stylen möchten?CSS: Stil auf eine Kombination von Klassen angewendet?

Ich verstehe, dass ich ein Element mit jQuery oder etwas überprüfen und seinen Stil basierend auf den Klassen ändern kann, aber es gibt eine reine CSS-Möglichkeit, dies zu tun?

Zum Beispiel, wenn ich eine Klasse für fett und grün haben:

.bold_green { color:green; font-weight:bold; } 

Und eine Klasse für fett und blau:

.bold_blue { color:blue; font-weight:bold. } 

Nun, sage ich jQuery bin mit hinzufügen und entfernen Klassen dynamisch und wollen jedes Element, das beide Klassen kursiv rosa hat.

Etwas wie:

.bold_green AND .bold_blue { color:pink; font-style:italic; } 

Oder, wenn ich will ein Element, um Stil, die aClass hat, und ist ein Nachkomme eines anderen Elements, das eine andere Klasse hat?

Etwas wie:

.bold_green HAS_CHILD .bold_blue { color:black; background-color:yellow; } 

Dank!

bearbeiten

Danke für alle Antworten. Das sind ziemlich genau das, was ich dachte (nur die Klassen als normale Selektoren zu behandeln), aber sie scheinen nicht für mich zu arbeiten. Ich werde meinen Code zu überprüfen und sicherzustellen, dass sie nicht irgendwie ...

+0

Haben Sie nicht zu verwenden, bedeutet 'Farbe: Blue' in der' bold_blue' Klasse ? – BalusC

+0

Ja = o) |||||||| – Eli

+0

als eine Nebenbemerkung, wenn Sie Klassen wie "bold_green" haben, dann ist wahrscheinlich etwas falsch mit der Art, wie Sie gestalten. mpen

Antwort

57
$('.bold_green.bold_blue').addClass('something-else'); 

Oder in CSS außer Kraft gesetzt werden:

.bold_green.bold_blue { color: pink; } 

Hinweis zwischen den Wählern kein Platz ist.

+0

Es gibt jedoch IE Kompatibilitätsprobleme, nein? –

+3

Ja, IE6 wird lesen, dass CSS als .bold_blue {Farbe: pink; }. Sie sollten eine Variation des bereitgestellten jQuery Pauls verwenden, da jQuery es richtig auswählen kann, und eine neue Klasse mit passendem css hinzufügen: .something-else {color: pink; } Ich hoffe auch, dass das keine echten Klassennamen sind. –

+1

Im Idealfall fügen Sie zuerst das CSS hinzu, wie hier empfohlen, und fügen dann die in einem bedingten Kommentar für IE6 erwähnte jQuery hinzu. –

6

Sie brauchen nichts Besonderes, nur

.bold_green.bold_blue { color:pink; font-style:italic; } 
3

Paul und Voyager sind für die mehrere Klassen Fall richtig.

Für die "HAS KIND" Fall würden Sie verwenden:

.bold_green .bold_blue { ... } /* note the ' ' (called the descendant selector) */ 

die jede bold_blue Elemente innerhalb eines bold_green Element Stil wird.

Oder wenn Sie ein DIRECT Kind wollte:

.bold_green > .bold_blue { ... } /* this child selector does not work in IE6 */ 

die nur bold_blue Elemente Stil wird die bold_green sofort Elternteil haben.

1

in Visual Studio 2013 die CSS-Einstellung auf mehrere Klassen durch ein "Comma" angewendet wird, wie folgt:

.bold_green, .bold_blue { color:pink; font-style:italic; }

Verwandte Themen