2012-01-05 11 views
14

Come puoi ridefinire una classe se è in un'altra classe specifica?Come posso applicare una regola css a tutti i discendenti di un elemento

div.cls { 
color:blue; 
} 

div.tst > div.cls { 
color:red; 
} 

<div class="cls">test</div> // text color = blue 

<div class="tst"> 
    <div class="cls">test</div> // text color = red 
    <div> 
    <div class="cls">test</div> // text color = blue 
    </div> 
<div> 

Come rendere anche l'ultimo rosso?

jsfiddle

http://jsfiddle.net/gpD7H/

+0

Il tuo codice dovrebbe funzionare correttamente. Cosa stai chiedendo? – SLaks

+0

Qual è la tua domanda esattamente? C'è qualcosa lì che non ha il colore che ti aspettavi? – Ernesto

+0

anche se la classe 'cls' non è direttamente un figlio per' tst'? – clarkk

risposta

4

Esattamente come quello. Tuttavia, la tua seconda divisione non sarà rossa in quanto è contenuta anche in un'altra divisione. Il selettore > si abbina solo ai bambini immediati sotto l'elemento abbinato prima, quindi sta cercando all'interno di div.tst a un solo livello. Provare a rimuovere la > dal selettore:

div.tst div.cls { 
color:red; 
} 

Your updated jsFiddle

10

ho usato questo, il lavoro per me:

.name-di-genitore * {color: red; }

Problemi correlati