Php Smarty使用CSS创建网格/表格结构,无需额外的HTML
我有一个HTML格式的基本列表,我想把它转换成3列网格。每个列表项都有固定的左侧浮动宽度,因此理想情况下我希望:Php Smarty使用CSS创建网格/表格结构,无需额外的HTML,php,smarty,smarty3,Php,Smarty,Smarty3,我有一个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> <
<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>
- 清单1
- 清单2
- 清单3
清单4
- 清单5
- 清单6
清单7
- 清单8
- 清单9
清单10
目前,我已经尝试了以下方法:
<ul>
{foreach $submenu.child.items as $row}
<li class="{if $row@iteration is div by 4}clear{/if}"><a href="#">{$row.label}</a></li>
{/foreach}
</ul>
{foreach$submenu.child.items as$row}
{/foreach}
正如您在下面看到的,这与第一行不同。例如:
<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>
- 清单1
- 清单2
- 清单3
清单4
- 清单5
- 清单6
- 清单7
清单8
- 清单9
- 清单10
更新:
我唯一能做到这一点的方法就是添加额外的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>
{foreach$submenu.child.items as$row}
{如果$row@iteration%3==0}- {/if}
{/foreach}
您是否关心第一个条目是否有“清除”
如果你没有,那么
{if $row@iteration % 3 == 1}
如果你这样做了,那么你需要
{if $row@iteration > 1 && $row@iteration % 3 == 1}
(或Smarty中的任何语法)
如果您已经解释了这个问题,也就是说,它与计数有关,而与HTML或Smarty无关,那么它会更有帮助 什么有效?会发生什么?IE中没有发生什么?你期待什么?你可以从我粘贴的HTML输出中看到什么效果,这显示了发生了什么。我希望它能像第一个例子一样工作,非常好,谢谢。我真不敢相信我花了多长时间试图弄明白这一点,我与“0”如此接近,我也将在将来尝试重新表述这个问题。我只是想举尽可能多的例子,让你明白我想做什么。我很感激你这么做,但如果你不知道你想从中得到什么,例子是没有帮助的!你提到IE让我觉得这是CSS或微妙的HTML的问题,在某些浏览器中有效,而在其他浏览器中无效。