2012-04-23 9 views
11
<ul> 
    <li> <span> apply </span> </li> 
    <li> <span> apply </span> </li> 
    <li> 
    <ul> 
     <li> <span> ignore </span> </li> 
     <li> <span> ignore </span> </li> 
    </ul> 
    </li> 
</ul> 

Come posso applicare una regola CSS solo per estendersi elementi del primo livello, e rendere elementi span dalla lista annidata ignorare la regola?Applicare stile solo su elementi secondari nel primo livello

È possibile eseguire questa operazione senza reimpostare in modo specifico le proprietà negli intervalli di 2 ° livello?

provato ul > li span ma non sembra funzionare, ottengo gli stili applicati al 2 ° livello troppo

+1

Quale elemento è il genitore dell'esterno 'ul'? –

+0

è un div? perché importa? – Alex

+1

Vedi la mia risposta. Puoi usarlo come punto di partenza per il tuo selettore. –

risposta

14

Metti la tua lista in un div involucro con un ID, ad esempio <div id="ul-wrapper">, e provare:

#ul-wrapper > ul > li > span { 
    /* my specific CSS */ 
} 
1
#container > ul > li span { /* - Your CSS Here - */ } 

È necessario specificare un contenitore, in modo che sia possibile selezionare solo il primo livello ul.

0
ul > li > span {border:solid 1px red;} 
li > ul > li > span {border:none 1px red;}; 
+1

Dalla domanda: "Questo può essere fatto senza reimpostare in modo specifico le proprietà negli intervalli di secondo livello?" –

1

Finché il padre del esterna ul non è un altro li, è possibile utilizzare che come punto di partenza per il selettore (ad esempio supponendo che è un div):

div > ul > li span { 
    /* Whatever */ 
} 
Problemi correlati