Jakson: Zellenhöhe in XSL

Ich hab da ein kleines Problem mit einer Tabelle.
Ich weiß es gibt einen Themenbereich XSL aber es ist aber ja ein XHTML Problem soviel ich sehe.

Also ich hab eine XML Datei mit Daten und eine XSL Datei in der drinnen steht wie die Seite dann ausschauen soll. Soweit alles ok.

Ich will jetzt drei Felder mit möglicherweise mehrzeiligem Text in folgendem Layout:

+----------+-+-------------+
| Header A | | Header B    |
+----------+-+-------------+
| Item A   | | Item B      |
| Zeile2   | |             |
| Zeile3   | |             |
| Zeile4   | |             |
| Zeile5   | |             |
| Zeile6   | +-------------+
| Zeile7   | |             |
| Zeile8   | | Header C    |  <--- Problem
| Zeile9   | |             |
| Zeile10  | +-------------+
| Zeile11  | | Item C      |
| Zeile12  | |             |
| Zeile13  | |             |
| Zeile14  | |             |
+----------+-+-------------+

Jetzt ist nur das Problem das die Höhe der Kopfzeile zu "Item C" vom Browser willkürlich festgelegt wird.

Mit Style="Height:10px;" hab ich es geschafft das im FireFox es richtig angezeigt wird. Nur der IE6.0 macht es immer noch falsch.

== XML Data: "Test.XML" =================
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="Test.xsl" ?>
<Root>
 <Data>
  <ItemA>Item1A
Zeile2
Zeile3
Zeile4
Zeile5
Zeile6
Zeile7
Zeile8
Zeile9
Zeile10
Zeile11
Zeile12
Zeile13
Zeile14</ItemA>
  <ItemB>Item1B</ItemB>
  <ItemC>Item1C</ItemC>
 </Data>
</Root>

== XSL Data: "Test.XSL" =================
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template name="Umbruch">
 <xsl:param name="Text" />
 xsl:choose
  <xsl:when test="contains($Text, '&#xA;')">
   <xsl:value-of select="substring-before($Text, '&#xA;')" />
   <br />
   <xsl:call-template name="Umbruch">
    <xsl:with-param name="Text" select="substring-after($Text,'&#xA;')" />
   </xsl:call-template>
  </xsl:when>
  xsl:otherwise
   <xsl:value-of select="$Text" />
  </xsl:otherwise>
 </xsl:choose>
</xsl:template>

<xsl:template match="/">
  <html>
   <head>
    <title>Test</title>
   </head>
   <body>
    <table Border="0" Width="500">

<xsl:for-each select="/Root/Data">
      <tr>
       <th>Item A</th>
       <td></td>
       <th>Item B</th>
      </tr>
      <tr>
       <td rowspan="3" Style="Border:1px Solid Black;Vertical-Align:Top;"><xsl:call-template name="Umbruch"><xsl:with-param name="Text" select="ItemA" /></xsl:call-template></td>
       <td rowspan="3"></td>
       <td Style="Border:1px Solid Black;Vertical-Align:Top;"><xsl:call-template name="Umbruch"><xsl:with-param name="Text" select="ItemB" /></xsl:call-template></td>
      </tr>
      <tr>
       <th Style="Height:10px;">Item C</th>
      </tr>
      <tr>
       <td Style="Border:1px Solid Black;Vertical-Align:Top;"><xsl:call-template name="Umbruch"><xsl:with-param name="Text" select="ItemC" /></xsl:call-template></td>
      </tr>
      <tr>
       <td colspan="3"></td>
      </tr>
     </xsl:for-each>
    </table>
   </body>
  </html>
 </xsl:template>

</xsl:stylesheet>

  1. Hallo,

    Ich hab da ein kleines Problem mit einer Tabelle.
    Ich weiß es gibt einen Themenbereich XSL aber es ist aber ja ein XHTML Problem soviel ich sehe.

    == XSL Data: "Test.XSL" =================

    *brrr* Der kode schaut echt schlimm aus und sehr nach dem Stil vom Visual Studio.

    Versuche für die Tabelle table-layout:fixed; zu verwenden.

    Grüße
    Thomas

    1. Hat nur eine Auswirkung auf die Breite der Spalten

      Ich will ja aber die Höhe der mittleren Kopfzeile anpassen.

      Wie sollte der Code den ausschauen? Für Vorschläge bin ich immer offen.

      Jakson

      1. Hallo,

        Hat nur eine Auswirkung auf die Breite der Spalten

        Ich will ja aber die Höhe der mittleren Kopfzeile anpassen.

        Also ein : table#bla { table-layout:fixed; } (bei: <table id="bla">) hat zumindest im IE7 auch auf die Höhe seine Auswirkung.

        Wie sollte der Code den ausschauen? Für Vorschläge bin ich immer offen.

        So nicht: <td rowspan="3" Style="Border:1px Solid Black;Vertical-Align:Top;">
        ich weiss zaer nicht mit welchem Editor du deinen Code schreibst, aber diese grauenvolle Art von Groß/Kleinschreibung (Vertical-Align:Top) kenne ich vom Visual Studio. (kann man aber auch abstellt). Ist aber nur meine persönliche Vorliebe/Abneigung.

        Grüße
        Thomas

        1. Nach dem ich gar keinen Editor verwende sondern alles tippe ist die Groß/Kleinschreibung eher ein Zufallsprodukt.

          Aber zurück zum Problem.
          Leider verwendet mein Kunde immer noch den IE6 bzw. IE5 und ist nicht dazu zu bewegen umzusteigen Bzw. darf es nicht.
          Wie gesagt im FF funktioniert es richtig.

          Nachdem mein Problem mit dem neuen HTML Standard mit Tabellen nicht lösbar ist suche ich jetzt einen anderen weg das ohne Tabellen zu machen z.b. mit CSS und DIV's nur kenn ich mich da zuwenig aus.

          Trotzdem Danke bis jetzt

          Jakson