2012-02-12 1 views
0

私は基本的な<ul>リストをHTMLで3列のグリッドに変換しています。各リスト項目は固定幅は左浮いているので、理想的に私は希望:Smartyは、余分なHTMLを使わずに、CSSでグリッド/テーブル構造を作成します。

<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> 

私はこの試みている瞬間:これは最初の行から離れて作品の下にあなたが見ることができるように

<ul> 
{foreach $submenu.child.items as $row} 
    <li class="{if [email protected] is div by 4}clear{/if}"><a href="#">{$row.label}</a></li> 
{/foreach} 
</ul> 

を。例えば:

<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> 

UPDATE: 私は仕事にこれを取得することができる唯一の方法は、余分なHTMLを追加することです。他の方法はありますか?

<ul> 
{foreach $submenu.child.items as $row} 
    <li><a href="">{$row.label}</a></li> 
    {if [email protected] % 3 == 0}<li class="clearBoth"></li>{/if} 
{/foreach} 
</ul> 
+0

どのような作品ですか?何が起こるのですか? IEでは何が起こりませんか?あなたは何を期待していますか? –

+0

貼り付けたHTML出力からどのようなものが動作するかを見ることができます。これは何が起こるかを示しています。私はそれが最初の例のように動作することを期待しています –

答えて

2

最初のエントリに「クリア」があるかどうかは気になりますか?

そうでない場合は、あなたが行う場合は、

{if [email protected] % 3 == 1} 

、あなたが必要となります

{if [email protected] > 1 && [email protected] % 3 == 1} 

(または任意の構文はSmartyのです)。

あなたが問題を説明した場合、つまり、それがカウントされていた場合、HTMLやSmartyとは関係ありません。

+0

完全に働いてくれてありがとう。私はこれを理解しようとどれくらいの時間を費やしたのか信じられず、私は "0"にとても近づいていた。 –

+0

また、今後質問を言い換えようとする。私はあなたが私がやろうとしていることを理解するように多くの例を挙げたいと思っていました。 –

+0

お手数ですが、あなたが探しているものが分からない場合は、例は役に立ちません! IEへの参照は、これがCSSや微妙なHTMLの問題、一部のブラウザではうまくいき、他のブラウザではうまくいかないと思っていました。 –

関連する問題