Ich habe eine geordnete Liste, die möglicherweise eine unendliche Anzahl von verschachtelten Listen haben kann. Ich versuche, die background-color
jeder verschachtelten Liste dynamisch zu ändern, so dass es zunehmend dunkler wird, die Gruppierung jeder Liste viel einfacher zu verstehen.Hintergrundfarbe nach verschachtelter Ebene änderbar?
So habe ich diese Grundstruktur (das unendlich fortgesetzt werden kann):
<ol class="top-level-list">
<li>
<ol>
<li>
<ol>
<li></li>
</ol>
</li>
</ol>
</li>
</ol>
Gerade jetzt, kann ich diese mit so etwas wie dies erreichen:
.top-level-list li ol li ol li {
background: #D4D4D4;
}
.top-level-list li ol li ol li ol li{
background: #C7C7C7;
}
Das gibt mir, was ich will, Es ist jedoch begrenzt in wie viele Ebenen ich verwenden kann und jede Ebene fügt mehr und mehr Daten zu meiner CSS-Datei hinzu, was zu längeren Ladezeiten führt.
Gibt es eine Möglichkeit, die Farbe mit einem einzelnen Selektor dynamisch festzulegen? Ich weiß, dass CSS3 einige neue CSS-Selektortricks hinzugefügt hat, aber ich kann nichts finden, was so etwas dokumentiert. Ich kann auch keinen Weg finden, einen Wert im Selektor dem Selektor selbst zuzuordnen.
Es ist schwer zu glauben, dass ein paar CSS-Regeln Ihre Ladezeit erheblich beeinträchtigen könnten, aber wenn Sie wirklich besorgt sind, lassen Sie das "ol" aus dem Selektor weg - sie werden nicht benötigt. – fred02138
Haben Sie versucht, JavaScript zu verwenden, um die CSS-Eigenschaft zu ändern? Es wäre nicht schwer, nur den Hintergrund zu erhalten und ein paar zum hexadezimalen Wert hinzuzufügen, um die Farben programmatisch zu erzeugen. – Joshua
Wie viel 'dunkler' nächstes' li' sollte sein? Diese Art von Berechnungen benötigt JavaScript. –