Добрый день! Столкнулся с интересной задачей, и уже некоторое время не могу найти для нее красивого решения.
Суть задачи: имеется список ul, каждый его подпункт li имеет div с текстовой строкой и таким же списком ul. Этакая рекурсия. И хочется чтобы цвета li (а точнее вложенного в него блока с текстом) чередовались через один (как это часто делают для строк таблицы)
Для li, лежащих в одном списке, проблема не стоит: li:nth-child(2n) {background: color1;} li:nth-child(2n+1) {background: color2;}
Но они то лежат в разных, а чередование цветов должно быть все равно.
Первая мысль была реализовать через опорные классы: в списке класса .first-color цвета элементов чередуются так: .first-color > li:nth-child(2n) {background: color1;} .first-color > li:nth-child(2n+1) {background: color2;} А в классе .second-color наоборот: .second-color > li:nth-child(2n) {background: color2;} .second-color > li:nth-child(2n+1) {background: color1;}
И вот так выглядит это решение http://jsfiddle.net/Lx6n3o4n/ Собственно именно такой вид хотелось бы получить в результате, но без использования классов.
Но это решение на самом деле плохое, потому что если список расширяется динамически или, что еще хуже, пункты (li) должны иметь возможность перемещаться из одного ul в любой другой, придется каждый раз менять классы first- и second- color в зависимости от того в каком они сейчас находятся элементе - четном или не четном.
Поэтому я прошу совета, может кто-нибудь сможет решить задачу "раскрашивания" пунктов списков на css без использования классов.
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
Koloyar
Добрый день! Столкнулся с интересной задачей, и уже некоторое время не могу найти для нее красивого решения.
Суть задачи: имеется список ul, каждый его подпункт li имеет div с текстовой строкой и таким же списком ul. Этакая рекурсия. И хочется чтобы цвета li (а точнее вложенного в него блока с текстом) чередовались через один (как это часто делают для строк таблицы)
Для li, лежащих в одном списке, проблема не стоит: li:nth-child(2n) {background: color1;} li:nth-child(2n+1) {background: color2;}
Но они то лежат в разных, а чередование цветов должно быть все равно.
Вот заготовка, к тому о чем я говорю: http://jsfiddle.net/q1p1abaj/
Первая мысль была реализовать через опорные классы: в списке класса .first-color цвета элементов чередуются так: .first-color > li:nth-child(2n) {background: color1;} .first-color > li:nth-child(2n+1) {background: color2;} А в классе .second-color наоборот: .second-color > li:nth-child(2n) {background: color2;} .second-color > li:nth-child(2n+1) {background: color1;}
И вот так выглядит это решение http://jsfiddle.net/Lx6n3o4n/ Собственно именно такой вид хотелось бы получить в результате, но без использования классов.
Но это решение на самом деле плохое, потому что если список расширяется динамически или, что еще хуже, пункты (li) должны иметь возможность перемещаться из одного ul в любой другой, придется каждый раз менять классы first- и second- color в зависимости от того в каком они сейчас находятся элементе - четном или не четном.
Поэтому я прошу совета, может кто-нибудь сможет решить задачу "раскрашивания" пунктов списков на css без использования классов.
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.