51

Chameleon または Zope ページ テンプレートを使用して、CSS ゼブラ ストライプを簡単に作成するにはどうすればよいですか? テーブルの各行にoddandクラスを追加したいのですが、 orで条件を使用すると、条件式を使用してもかなり冗長に見えます。evenrepeat/name/oddrepeat/name/even

<table>
   <tr tal:repeat="row rows" 
       tal:attributes="class python:repeat['row'].odd and 'odd' or 'even'">
       <td tal:repeat="col row" tal:content="col">column text text</td>
   </tr>
</table>

計算するクラスが複数ある場合、これは特に面倒です。

4

1 に答える 1

36

変数の Zope Page Templates 実装には、repeat文書化されていない追加のパラメーターparityがあり、文字列'odd'またはを提供し'even'、反復間で交互に使用されます。

<table>
   <tr tal:repeat="row rows" 
       tal:attributes="class repeat/row/parity">
       <td tal:repeat="col row" tal:content="col">column text text</td>
   </tr>
</table>

これは、文字列式に補間するのもはるかに簡単です。

tal:attributes="class string:striped ${row/class} ${repeat/row/parity}"

これはカメレオンでも機能します。

于 2013-12-19T18:19:16.693 に答える