Zeilen einer XML-Tabelle mit unterschiedlichen Farben darstellen
magnetben
- css
Hallo,
ich hab folgendes Problem:
Ich habe eine generierte XML-Datei, die mit einer xslt-Datei zu einer html Seite transformiert wird. Die Länge der Tabelle in der XML-Datei ist variabel, kann aber mitunder sehr lang werden. Ich möchte, dass die Tabelle in der HTML Datei für jede 2. Zeile mit einer Hintergrundfarbe versehen ist.
Die Tabellenzeilen lege ich mit xsl:for-each an, somit habe ich nur einen <tr>-Tag - Wie kann ich nun die CSS Datei geschickt formulieren, dass abwechselnd die Zeilen grau und weiß hinterlegt sind? Oder muss ich eine neue Zählschleife in der xslt-Datei generieren?
Gruß
ben
Ich habe eine generierte XML-Datei, die mit einer xslt-Datei zu einer html Seite transformiert wird. Die Länge der Tabelle in der XML-Datei ist variabel, kann aber mitunder sehr lang werden. Ich möchte, dass die Tabelle in der HTML Datei für jede 2. Zeile mit einer Hintergrundfarbe versehen ist.
Die Tabellenzeilen lege ich mit xsl:for-each an, somit habe ich nur einen <tr>-Tag - Wie kann ich nun die CSS Datei geschickt formulieren, dass abwechselnd die Zeilen grau und weiß hinterlegt sind? Oder muss ich eine neue Zählschleife in der xslt-Datei generieren?
Eher Letzteres, es sei denn, du kannst dich etwas [1] Gedulden, bis die CSS Selektoren verlässlich interpretiert werden.
[1]1 2 3 Jahre
mfg Beat
@@magnetben:
Wie kann ich nun die CSS Datei geschickt formulieren, dass abwechselnd die Zeilen grau und weiß hinterlegt sind?
Aktuelle Opera und Safari können’s schon; Firefox und IE 6 & 7 nicht.
Oder muss ich eine neue Zählschleife in der xslt-Datei generieren?
http://de.selfhtml.org/xml/darstellung/xpathfunktionen.htm#position@title=position und http://de.selfhtml.org/xml/darstellung/xpathsyntax.htm#operatoren@title=mod sind deine Freunde.
Live long and prosper,
Gunnar
@@magnetben:
Wie kann ich nun die CSS Datei geschickt formulieren, dass abwechselnd die Zeilen grau und weiß hinterlegt sind?
Aktuelle Opera und Safari können’s schon; Firefox und IE 6 & 7 nicht.
Oder muss ich eine neue Zählschleife in der xslt-Datei generieren?
http://de.selfhtml.org/xml/darstellung/xpathfunktionen.htm#position@title=position und http://de.selfhtml.org/xml/darstellung/xpathsyntax.htm#operatoren@title=mod sind deine Freunde.
Live long and prosper,
Gunnar
Danke für eure Antworten. Leider kommen Safari und Firefox nicht in Frage - ich muss den IE benutzen. Mit den beiden vorgeschlagenen Funktionen kenne ich mich zwar nicht aus, aber ich werd mein bestes Versuchen. Danke!
@@magnetben:
Wie kann ich nun die CSS Datei geschickt formulieren, dass abwechselnd die Zeilen grau und weiß hinterlegt sind?
Aktuelle Opera und Safari können’s schon; Firefox und IE 6 & 7 nicht.
Oder muss ich eine neue Zählschleife in der xslt-Datei generieren?
http://de.selfhtml.org/xml/darstellung/xpathfunktionen.htm#position@title=position und http://de.selfhtml.org/xml/darstellung/xpathsyntax.htm#operatoren@title=mod sind deine Freunde.
Live long and prosper,
Gunnar
Ok, hab's hinbekommen:
falls es jemanden interessiert:
<xsl:if test="position() mod 2 = 1">
<tr class="Record">
<xsl:call-template name="ContactReihen"/>
</tr>
</xsl:if>
<xsl:if test="position() mod 2 = 0">
<tr class="Record_Test" bgcolor="#FFCDAB">
<xsl:call-template name="ContactReihen"/>
</tr>
</xsl:if>
Danke für die Hilfe!
@@magnetben:
<xsl:if test="position() mod 2 = 0">
<tr class="Record_Test" bgcolor="#FFCDAB">
Sagtest du nicht was von „CSS“ und „geschickt“?!
Was hat des missbilligte HTML-Attribut 'bgcolor' damit zu tun? Weg damit!
Setze mittels XSLT zwei Klassen "gerade"/"ungerade" (oder en: "even"/"odd"; einfach "Record"/"Record_Test" umbenennen?) und gib die Stile dafür im Stylesheet an!
Oder auch nur eine Klasse, deren Stil die Formatierung für alle Tabellenzeilen überschreibt.
Live long and prosper,
Gunnar