Wednesday, November 26, 2008

Abwechselnde Styles mit XSLT

Also, Kollege Vilic hat die Frage aufgeworfen, wie man mit XSLT erreichen kann, dass z.B. Tabellenzeilen oder Listeneinträge mit abwechselnden Farben unterlegt werden. Das geht wie vermutet mit Verwendung der Modulo Funktion (die ja den Rest einer Division liefert). Nun wenn man aufsteigende Werte modulo 2 rechnet, kommt immer 0 oder 1 als Rest. Das können wir uns zu Nutze machen, in dem wir die Position der Elemente als Operand für die Modulo-Rechnung hernehmen):

im XSL:
<xsl:template match="person">
<li class="row{position() mod 2}"><xsl:value-of select="name"/></li>
</xsl:template>

und im CSS:
.row0 { background-color: blue; }
.row1 { background-color: green; }

Voila. Ein Beispiel gibts hier.

No comments: