Как создать CSS с полосками зебры с помощью TAL?
Как я могу использовать шаблоны страниц Chameleon или Zope, чтобы легко создавать чередующиеся CSS-зебры? я хочу добавить odd
а также even
классы для каждой строки в таблице, но с использованием условия с repeat/name/odd
или же repeat/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>
Это становится особенно утомительным, если у вас есть несколько классов для расчета.
1 ответ
Решение
Реализация шаблонов страниц Zope для 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}"
Это работает и в хамелеоне.