2015-02-12 6 views

risposta

24

È possibile indirizzare tutti gli elementi di pari livello dopo con ~

li.active ~ li 
{ 
    color: green; 
} 

JSFiddle


In CSS, non è possibile indirizzare i fratelli prima di un elemento, in modo che avrebbe dovuto fare qualcosa del genere:

Dare a tutti una regola:

li 
{ 
    color: orange; 
} 

Poi sovrascrivere quello attivo

li.active 
{ 
    color: red; 
} 

Poi sovrascrivere quelli dopo

li.active ~ li 
{ 
    color: green; 
} 

JSFiddle

+1

Così facile, lo adoro! grazie :) – uneducatedguy

+0

Questa risposta mi ricorda Phoenix Wright in qualche modo ... girando il problema sulla sua testa per risolverlo ... –

1

Giusto per farlo notare, in un altro modo potrebbe essere:

li:not(.active) { 
    /* your css rules here */ 
} 

Questo selezionerà ogni li chi non ha la classe .active

+0

Questo selezionerebbe quelli prima e dopo. Se vuoi prima xor dopo, avresti bisogno di qualcos'altro. – Teepeemm