motya88 Опубликовано 19 февраля, 2017 Жалоба Поделиться Опубликовано 19 февраля, 2017 Подскажите, как вывести категории в 3 столбца и для каждого использовать свой класс?Смысл вот какой: 1-й элемент списка должен быть <li class="var1">2-й элемент списка - <li class="var2">3-й элемент списка - <li class="var3">4-й элемент списка - <li class="var1">и так далее. {if $categories} <ul> {foreach $categories as $c} {* Показываем только видимые категории *} {if $c->visible} <li class="var1"> ... </li> {/if} {/foreach} </ul> {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
Smartycms Опубликовано 19 февраля, 2017 Жалоба Поделиться Опубликовано 19 февраля, 2017 Не совсем понятен вопрос. Но напишу на всякий случай: {foreach $categories as $c} {if $c->visible} {if $c@index%3==0}<div>{/if} <li> ... </li> {if $c@iteration%3==0 || $c@last }</div>{/if} {/if} {/foreach} Вот такой код выведет по 3 пункта <li> внутри <div>...</div> Ну а добавить класс - решение javascript http://www.cyberforum.ru/javascript/thread927889.html или-же проще оформить в css непосредственно через nth-child Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 19 февраля, 2017 Жалоба Поделиться Опубликовано 19 февраля, 2017 Не совсем понятен вопрос. Но напишу на всякий случай: {foreach $categories as $c} {if $c->visible} {if $c@index%3==0}<div>{/if} <li> ... </li> {if $c@iteration%3==0 || $c@last }</div>{/if} {/if} {/foreach} Вот такой код выведет по 3 пункта <li> внутри <div>...</div> Ну а добавить класс - решение javascript http://www.cyberforum.ru/javascript/thread927889.html или-же проще оформить в css непосредственно через nth-child как то не очень оба решения... 1) что произойдет если будет выключена какая то категория в списке? правильней было бы использовать переменную-счетчик2) для чего же js и тем более псевдокласы? Если можно сделать просто class="class{$c->id}". ид является уникальным и постоянным идентификатором категории Цитата Ссылка на сообщение Поделиться на другие сайты
Smartycms Опубликовано 19 февраля, 2017 Жалоба Поделиться Опубликовано 19 февраля, 2017 2) для чего же js и тем более псевдокласы? Если можно сделать просто class="class{$c->id}". ид является уникальным и постоянным идентификатором категории Само собой id использовать проще, но человеку как я понял из задания - нужно зациклить (т.е. всего 3 класса, а не у каждой категории новый класс) 1-й элемент списка - <li class="var1">2-й элемент списка - <li class="var2">3-й элемент списка - <li class="var3">4-й элемент списка - <li class="var1"> Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 19 февраля, 2017 Жалоба Поделиться Опубликовано 19 февраля, 2017 (изменено) Само собой id использовать проще, но человеку как я понял из задания - нужно зациклить (т.е. всего 3 класса, а не у каждой категории новый класс) Ну если так то: class{$c@iteration%3} пс если сделаете правильно то: class{$iteration_var%3} Изменено 19 февраля, 2017 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
motya88 Опубликовано 20 февраля, 2017 Автор Жалоба Поделиться Опубликовано 20 февраля, 2017 Ну если так то: class{$c@iteration%3} пс если сделаете правильно то: class{$iteration_var%3} а можешь подробнее написать конструкцию? Мне не совсем понятно как её использовать для 3х случаев. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 20 февраля, 2017 Жалоба Поделиться Опубликовано 20 февраля, 2017 (изменено) а можешь подробнее написать конструкцию? Мне не совсем понятно как её использовать для 3х случаев. {if $categories} <ul> {$counter = 0} {foreach $categories as $c} {if $c->visible} <li class="var{if !$counter}1{else}{$counter%3+1}{/if}"> </li> {if ($counter && $counter%3==0) || $c@last}<li class="clearfix">тут если нужен блок разделитель</li>{/if} {$counter = $counter+1} {/if} {/foreach} </ul> {/if} Как то так. Не проверял. Возможно потребудется поправка на $counter=0 Изменено 20 февраля, 2017 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.