2013-12-19 3 views
38

Wie kann ich Chameleon oder Zope Page Templates verwenden, um CSS Zebra Striping einfach zu erstellen? Ich mag odd und even Klassen für jede Zeile in einer Tabelle hinzufügen, aber eine Bedingung mit repeat/name/odd oder repeat/name/even verwenden sieht ziemlich ausführliche sogar mit einem bedingten Ausdruck:Wie erstellt man Zebra-Stripe CSS mit TAL?

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

Dies wird besonders mühsam, wenn Sie mehrere Klassen zu berechnen .

+8

PS. Einige mögen denken, dass es falsch ist, dass ich meine eigene Frage direkt nach dem Posten beantworte. Bitte lesen Sie vor dem Abstimmen [Es ist in Ordnung, Ihre eigenen Fragen zu stellen und zu beantworten] (http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/) . –

Antwort

25

Die Zope Page Templates-Implementierung für die repeat Variable hat eine Unter dokumentiert zusätzliche Parameter, parity, als haben Sie die Zeichenfolge 'odd' oder 'even', zwischen Iterationen abwechselnd:

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

Dies ist auch viel einfacher in einen String Ausdruck zu interpolieren:

Dies funktioniert auch in Chameleon.

Verwandte Themen