2012-01-05 10 views
14

¿Cómo se puede redefinir una clase si está en otra clase específica?¿Cómo puedo aplicar una regla CSS a todos los descendientes de 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> 

Cómo hacer que el último también sea rojo?

jsFiddle

http://jsfiddle.net/gpD7H/

+0

Tu código debería funcionar bien. ¿Que estas preguntando? – SLaks

+0

¿Cuál es su pregunta exactamente? ¿Hay algo ahí que no tenga el color que esperabas? – Ernesto

+0

también si la clase 'cls' no es directamente un hijo del' tst'? – clarkk

Respuesta

4

Exactamente así. Sin embargo, su segunda división no será texto en rojo porque también está dentro de otra división. El selector > solo coincide con los elementos secundarios inmediatos debajo del elemento coincidente anterior, por lo que mira dentro de div.tst en un solo nivel. Trate de no incluir el > desde el selector:

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

Your updated jsFiddle

10

He utilizado este, que funcione para mí:

.name-de-matriz * {color: red; }

Cuestiones relacionadas