Ho una lista ordinata che potenzialmente può avere una quantità infinita di elenchi annidati. Sto cercando di modificare dinamicamente lo di ogni elenco annidato in modo che diventi progressivamente più scuro, rendendo il raggruppamento di ciascuna lista molto più facile da comprendere.È possibile cambiare il colore di sfondo in base al livello annidato?
Quindi ho questa struttura di base (che può continuare all'infinito):
<ol class="top-level-list">
<li>
<ol>
<li>
<ol>
<li></li>
</ol>
</li>
</ol>
</li>
</ol>
In questo momento, posso fare questo usando qualcosa di simile:
.top-level-list li ol li ol li {
background: #D4D4D4;
}
.top-level-list li ol li ol li ol li{
background: #C7C7C7;
}
che mi dà quello che voglio, ma è limitato a quanti livelli posso usare e ogni livello aggiunge sempre più dati al mio file CSS, con conseguente tempi di caricamento più lunghi.
C'è un modo per impostare dinamicamente il colore con un singolo selettore? So che CSS3 ha aggiunto alcuni nuovi trucchi per i selettori CSS, ma non riesco a trovare nulla che documenta qualcosa di simile. Né posso trovare un modo per fare in modo che un valore nel selettore corrisponda al selettore stesso.
È difficile credere che alcune regole CSS possano influire in modo significativo sul tempo di caricamento, ma se si è davvero preoccupati, omettendo il "vecchio" dal selettore, non sono necessarie. – fred02138
Hai provato a usare javascript per cambiare la proprietà css? Non sarebbe troppo difficile ottenere solo lo sfondo e aggiungerne alcuni al valore esadecimale per generare i colori in modo programmatico. – Joshua
Quanto 'più scuro' prossimo 'li' dovrebbe essere? questo tipo di calcoli richiede JavaScript. –