2013-12-19 5 views
38

カメレオンまたはZopeページテンプレートを使用してCSSゼブラストライピングを簡単に作成するにはどうすればよいですか?私は、テーブル内の各行にoddevenクラスを追加したいのですが、repeat/name/oddまたはrepeat/name/evenと条件を使用しても、条件式ではなく、冗長になります。TALでゼブラストライプCSSを作成するには?

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

あなたが計算するための複数のクラスを持っている場合、これは特に面倒な取得します。

+8

PS。投稿した直後に自分の質問に答えるのは間違っていると思う人もいます。下降投票する前に、[自分の質問に尋ねて答えてもよいです](http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/)を読んでください。 。 –

答えて

25

反復間で交互に、あなたの文字列'odd'または'even'を与えるよりも、repeat変数のためのZopeページテンプレートの実装は、下の文書化余分パラメータ、parityがあります

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

これはChameleonでも同様に機能します。

関連する問題