Smarty: Tabellen-Frage

Hallo self-html-Gemeinde,

ich habe mal eine Frage (was auch sonst ;-) ).

Ich habe einen Teil meiner Seite so programmiert:

-------------------------------------------------
Zeile1  |               | über zwei Zeilen ausge-         |
        |               | richtet                         |
        |               |                                 |
        |               |                                 |
        |               |                                 |
        |---------------|                                 |
Zeile2  | Höhe: 10      |                                 |
        |               |                                 |
        |               |                                 |
        |---------------|---------------------------------|
Zeile3  |               |                                 |
        |               |                                 |
         -------------------------------------------------

Da ich in der 2. Zeile die erste Spalte mit einer Höhe von
10 definiert habe, wird jetzt - da das der zweiten Spalte
länger als das in der 1. Spalte ist - die Zeile 1 an die
entsprechende Länge von Spalte 2 angepasst. Dies soll aber
nicht! Die Spalte 1 in der ersten Zeile soll dort enden,
wo nichts mehr steht. Dies funktioniert jedoch nicht.
(Soll aber auch nicht über eine height-Angabe gemacht werden.)

Wie kann ich erreichen, dass sich Spalte 2 über Zeile 1
und Zeile 2 erstreckt ohne dass sich die Spalte 1 in der
Zeile 1 verlängert?

(Hört sich ein bisschen kompliziert an, aber ihr habt
bestimmt nen guten Tipp an einen noch Verzweifelnden.)

Smarty

  1. Hi Smarty,

    mal sehen, ob ich das richtig verstanden habe:

    Deine Zeile 2 soll 10px hoch sein (so hast Du es festgelegt).
    Deine Zeile 1 soll sagenwirmal 25 px (Wert ist im Prinzip egal) sein - halt nur so hoch, wie Inhalt da ist. Macht zusammen 35 px.

    Zeile 1 + 2 in Spalte 2 sorgen dagegen für sagenwirmal 50 px (Wert ist im Prinzip egal).

    Logischerweise muss eine der Zellen in Spalte 1 größer aufgezogen werden als von Dir gewünscht - anders geht's nicht.

    Du wirst nicht drum rum kommen, Dich von einer Deiner Vorgaben zu trennen - alles wirst Du nicht haben können.

    Ich schätze es wird Dir am wenigstens ausmachen, Dich von der 10 px Fixierung in Spalte 1 Zeile 2 zu trennen. Das musst aber natürlich Du entscheiden - wenn's Dir nichts ausmacht, dass unter Spalte 1 Zeile 2 Freiraum entsteht.

    HTH & Grüße,

    Utz

  2. Hallo Smarty,

    Wie kann ich erreichen, dass sich Spalte 2 über Zeile 1
    und Zeile 2 erstreckt ohne dass sich die Spalte 1 in der
    Zeile 1 verlängert?

    Wenn dein Code ungefähr so aussieht:

    <table border="1" cellpadding="0" cellspacing="0" width="100%">
    <tr>
    <td> </td>
    <td rowspan="2"> </td>
    </tr>
    <tr>
    <td height="10"> </td>
    </tr>
    <tr>
    <td> </td>
    <td> </td>
    </tr>
    </table>

    wirst du, wenn der Inhalt in Spalte 2 sehr gross ist, nicht verhindern können, dass sich die erste Zelle in der Höhe streckt, da du ja die Höhe der 2. mit 10px festgelegt hast.

    Ach ja, ein Code wäre hilfreich.

    Viele Grüße,

    Kirsten

    1. Hallo,

      folgend mein Quelltext.
      Ich möchte also erreichen, dass in der 1. Zeile die 1. Spalte nicht der Länge nach an die 2. Spalte angepasst wird, sondern die 2. Zeile (1. Spalte) - Höhe 10 habe ich schon entfernt - an die entsprechende Länge angepasst wird.
      Wie kann ich dies erreichen (die 1. Zeile soll aber auch keinen Wert bekommen, wie hoch sie ist).

      Vielen Dank,
      Smarty

      ---
      <table width="760" border="0" bgcolor="#FFFFFF" cellpadding="0" cellspacing="0">
      <tr>
       <td width="130" valign="top">
        Überschrift Menu
       </td>
       <td width="30"  valign="top"> </td>
       <td width="570" valign="top" rowspan="3">
               Text text text text text text text, der ganz lang ist
              </td>
       <td width="30" valign="top"> </td>
      </tr>
      <tr>
       <td width="130" valign="top">
        Menüeintrag<br>
        Menüeintrag<br>
        Menüeintrag
              </td>
       <td width="30" valign="top"> </td>
       <td width="30" valign="top"> </td>
      </tr>
      <tr>
       <td width="130" valign="top">kleine Grafik</td>
       <td width="30"> </td>
       <td width="30"> <td>
      </tr>
      </table>

      1. Hallo bunter Smarty,

        Ich möchte also erreichen, dass in der 1. Zeile die 1. Spalte nicht der Länge nach an die 2. Spalte angepasst wird, sondern die 2. Zeile (1. Spalte) - Höhe 10 habe ich schon entfernt - an die entsprechende Länge angepasst wird.
        Wie kann ich dies erreichen (die 1. Zeile soll aber auch keinen Wert bekommen, wie hoch sie ist).

        tja, da wirst du kaum um Höhenangaben herumkommen, und zwar in jeder Spalte und Zeile. Teile deinen Text so ein, dass er in die Spalte passt, ansonsten musst du mit mehreren und/oder verschachtelten Tabellen arbeiten. Und weil du so ein bunter Smarty bist, bekommst du jetzt auch eine ganz bunte Tabelle von mir, mit festen Höhen- und Breitenangaben:

        <body bgcolor="#000000">
        <table width="760" border="0" bgcolor="#FFFFFF" cellpadding="0" cellspacing="0">
        <tr>
        <td width="130" valign="top" height="10" bgcolor="557788"> </td>
        <td width="30"  valign="top" bgcolor="#FF0000"> </td>
        <td width="570" valign="top" rowspan="3" height="400" bgcolor="#FFFF00"> </td>
        <td width="30" valign="top" bgcolor="#00FF00"> </td>
        </tr>
        <tr>
        <td width="130" valign="top" height="380" bgcolor="#FF0080"> </td>
        <td width="30" valign="top" bgcolor="#FF8000"> </td>
        <td width="30" valign="top" bgcolor="#800080"> </td>
        </tr>
        <tr>
        <td width="130" valign="top" height="10" bgcolor="#8080FF"> </td>
        <td width="30" bgcolor="#408080"> </td>
        <td width="30" bgcolor="#FF8000"> <td>
        </tr>
        </table>
        </body>

        *g*

        Viele Grüße,

        Kirsten