2009-04-30 12 views
22

Ho bisogno di creare uno stile con classe "a" e classe "b". Come lo faccio?Stile CSS per un elemento che ha classe A e classe B

L'ordine di visualizzazione delle classi in html può variare.

<style> 
div.a ? div.b{ 
color:#f00; 
} 
</style> 
<div class="a">text not red</div> 
<div class="b">text not red</div> 
<div class="a b">red text</div> 
<div class="b a">red text</div> 

risposta

49

Questo è tutto possibile. Se si specificano due classi su un elemento (senza spazi), ciò significa che deve avere entrambe le regole per l'applicazione.

div.a { 
 
    color: blue; 
 
} 
 
div.b { 
 
    color: green; 
 
} 
 
div.a.b { 
 
    color: red; 
 
}
<div class="a"> 
 
    A 
 
</div> 
 
<div class="b"> 
 
    B 
 
</div> 
 
<div class="a b"> 
 
    AB 
 
</div>

+6

+1 con una nota non è supportato in IE6 –

+0

lol @VanGale questa è stata una buona ... ma è una vecchia domanda ... – jycr753

+0

È supportato in IE9? Sto avendo problemi dove elementi con solo una delle classi stanno prendendo in mano lo stile. Questo è il tipo di documento che sto usando .. Dib

-2

Sì, utilizzare una classe comune, o perché no, JavaScript se il contenuto cambia in modo dinamico

9

selettori di classe possono essere combinati:

div.a.b { 
    color: red; 
} 

Citando the spec:

per abbinare un sottoinsieme di valori "class", ogni valore deve essere preceduto da un ".".

Ad esempio, la seguente regola seleziona ogni elemento P il cui attributo "class" è stato assegnato un elenco di valori separati da spazio che comprende "pastoral" e "marine":

p.marine.pastoral { color: green } 

Questa regola corrisponde quando class="pastoral blue aqua marine" ma non corrisponde per class="pastoral blue".

4
div[class~="a"][class~="b"]{ 
color:#f00; 
} 
+1

Amo questo, ma vale la pena ricordare che il supporto del browser legacy è piuttosto basso. –

0

/* selezionare tag div con Classe A e B insieme */

<style> 
    div.a.b 
    { 
     color:#f00; 
    } 
    </style> 
    <div class="a">text not red</div> 
    <div class="b">text not red</div> 
    <div class="a b">red text</div> 
    <div class="b a">red text</div> 
Problemi correlati