Добавить класс каждому li

  • 6 Ответов
  • 655 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн xenos

Добавить класс каждому li
« : 14.04.2015, 20:47:54 »
Добрый вечер господа. Столкнулся с такой проблемой...
Вообщем дорабатываю  модуль вывода материалов на основе стандартного mod_articles_latest
Мне нужно каждому li добавить класс, чтоб можно было к каждому анонсу применить свой class.
Но он выводит в общем листе материал
<ul class="latestnews<?php echo $moduleclass_sfx?>">
<?php foreach ($list as $item) :  ?>
<li itemscope itemtype="http://schema.org/Article">
<a href="<?php echo $item->link?>" itemprop="url">
<span itemprop="name">
<?php echo $item->title?>
                                 <?php echo $item->fulltext?>
</span>
</a>
</li>
<?php endforeach; ?>
</ul>

Как можно разбить вывод с общего списка, тобто возможно ли  как то  каждый выведенный  title вывести с разным CSS классом.

*

Оффлайн motokraft

Re: Добавить класс каждому li
« Ответ #1 : 14.04.2015, 20:57:04 »
Надо этот класс где то хранить и выводить для каждого материала свой, напрашивается решение что бы сам класс сохранять вместе с материалом и выводить так же как и название материала...

<li class="<?php echo $item->class_content?>" itemscope itemtype="http://schema.org/Article">
Я правильно тебя понял!
...

*

Оффлайн xenos

Re: Добавить класс каждому li
« Ответ #2 : 14.04.2015, 21:14:59 »
да все так поняли...Тока фиксить админку нет смысла, при создании материала нет поля для своего класса. А что б автоматом например по числу добавлялся не знаете как реализовать. Например

li class 1, li class 2 и так далее...

*

Оффлайн voland

  • ********
  • 9939
  • [+]520 / [-]101
  • Пол: Мужской
  • СКАЙП утерян! Пишите в телеграм @volandku
    • Просмотр профиля
    • webstudio.pro
Re: Добавить класс каждому li
« Ответ #3 : 14.04.2015, 21:33:10 »
Переопределить вывод модуля и добавить в нем классы в цикле.

*

Оффлайн midav

Re: Добавить класс каждому li
« Ответ #4 : 14.04.2015, 21:42:43 »
Там же цикл есть, какая проблема добавить эту цифру ?
Добавь переменную и в конце каждой итерации увеличивай на один :
<ul class="latestnews<?php echo $moduleclass_sfx?>">
<?php 
$i 
1;
foreach (
$list as $item) :  ?>

<li itemscope itemtype="http://schema.org/Article" class=class-"<?php echo $i?>">
<a href="<?php echo $item->link?>" itemprop="url">
<span itemprop="name">
<?php echo $item->title?>
                                 <?php echo $item->fulltext?>
</span>
</a>
</li>
<?php 
$i
++;
endforeach; 
?>

</ul>

Или сделать это с помощью CSS и псевдо класса :nth-child , в старых браузерах конечно работать это не будет .
Ответы на вопросы по CSS . Откройте для себя Firebug

*

Оффлайн motokraft

Re: Добавить класс каждому li
« Ответ #5 : 15.04.2015, 04:24:15 »
да все так поняли...Тока фиксить админку нет смысла, при создании материала нет поля для своего класса. А что б автоматом например по числу добавлялся не знаете как реализовать. Например

li class 1, li class 2 и так далее...

тогда можно сделать вот так!

<li class="class<?php echo $item->id?>" itemscope itemtype="http://schema.org/Article">
получиться

class="class15"
...

*

Оффлайн xenos

Re: Добавить класс каждому li
« Ответ #6 : 15.04.2015, 11:14:47 »
Там же цикл есть, какая проблема добавить эту цифру ?
Добавь переменную и в конце каждой итерации увеличивай на один :
<ul class="latestnews<?php echo $moduleclass_sfx?>">
<?php 
$i 
1;
foreach (
$list as $item) :  ?>

<li itemscope itemtype="http://schema.org/Article" class=class-"<?php echo $i?>">
<a href="<?php echo $item->link?>" itemprop="url">
<span itemprop="name">
<?php echo $item->title?>
                                 <?php echo $item->fulltext?>
</span>
</a>
</li>
<?php 
$i
++;
endforeach; 
?>

</ul>

Или сделать это с помощью CSS и псевдо класса :nth-child , в старых браузерах конечно работать это не будет .

То что нужно...Благодарю господа за помощ...