Mam uporządkowaną listę, która potencjalnie może mieć nieskończoną liczbę zagnieżdżonych list. Szukam dynamicznej zmiany background-color
każdej listy zagnieżdżonej, aby stopniowo stawała się ciemniejsza, dzięki czemu grupowanie każdej listy było łatwiejsze do zrozumienia.Można zmienić kolor tła zgodnie z poziomem zagnieżdżonym?
Więc mam tę podstawową strukturę (które można kontynuować w nieskończoność):
<ol class="top-level-list">
<li>
<ol>
<li>
<ol>
<li></li>
</ol>
</li>
</ol>
</li>
</ol>
Teraz można to osiągnąć za pomocą mniej więcej tak:
.top-level-list li ol li ol li {
background: #D4D4D4;
}
.top-level-list li ol li ol li ol li{
background: #C7C7C7;
}
który daje mi to, co chcę, ale jest ograniczona na ile poziomów mogę użyć, a każdy poziom dodaje coraz więcej danych do mojego pliku CSS, co powoduje dłuższy czas ładowania.
Czy istnieje sposób na dynamiczne ustawianie koloru za pomocą jednego selektora? Wiem, że CSS3 dodał kilka nowych selektorowych selektorów CSS, ale nie mogę znaleźć niczego, co udokumentowałoby coś takiego. Nie mogę też znaleźć sposobu, aby wartość w selektorze odpowiadała samemu selektorowi.
Trudno uwierzyć, że kilka przepisów CSS może znacząco wpłynąć na czas ładowania, ale jeśli naprawdę się tym przejmujesz, pomiń "ol" z selektora - nie są one potrzebne. – fred02138
Czy próbowałeś używać javascript do zmiany właściwości css? Nie byłoby zbyt trudno uzyskać tylko tło i dodać kilka wartości heksadecymalnych do programowego generowania kolorów. – Joshua
Ile '' ciemniejszy' powinien być następny 'li'? tego rodzaju obliczenia wymagają JavaScript. –