Smarty создает структуру сетки / таблицы с помощью CSS, без дополнительного HTML - PullRequest
0 голосов
/ 12 февраля 2012

У меня есть базовый список <ul> в HTML, который я хотел бы преобразовать в сетку из 3 столбцов.каждый элемент списка имеет фиксированную ширину с плавающей запятой влево, поэтому в идеале я хотел бы:

<ul>
    <li>List 1</li>
    <li>List 2</li>
    <li>List 3</li>
    <li class="clear">List 4</li>
    <li>List 5</li>
    <li>List 6</li>
    <li class="clear">List 7</li>
    <li>List 8</li>
    <li>List 9</li>
    <li class="clear">List 10</li>
</ul>

На данный момент я пробовал это:с первого ряда.EG:

<ul>
    <li>List 1</li>
    <li>List 2</li>
    <li>List 3</li>
    <li class="clear">List 4</li>
    <li>List 5</li>
    <li>List 6</li>
    <li>List 7</li>
    <li class="clear">List 8</li>
    <li>List 9</li>
    <li>List 10</li>
</ul>

ОБНОВЛЕНИЕ: Единственный способ заставить это работать - добавить дополнительный HTML.Есть ли другой способ?

<ul>
{foreach $submenu.child.items as $row} 
    <li><a href="">{$row.label}</a></li>
    {if $row@iteration % 3 == 0}<li class="clearBoth"></li>{/if}
{/foreach}
</ul>

1 Ответ

2 голосов
/ 13 февраля 2012

Вас волнует, имеет ли первая запись «очистить»?

Если нет, то

 {if $row@iteration % 3 == 1}

Если вы это сделаете, вам понадобится

 {if $row@iteration > 1 && $row@iteration % 3 == 1}

(или любой другой синтаксис в Smarty).

Было бы более полезно, если бы вы объяснили проблему, т. Е. Речь шла о подсчете, а не о том, что связано с HTML или Smarty.

...