Der Martin: Tabelle und div

Beitrag lesen

Hi,

<table>
<tr>
  <td>aaa</td>
  <td>bbb</td>
</tr>
<div id="weitere_zeilen" />
</table>

diese Schachtelung ist in (X)HTML nicht zulässig: Ein div-Element darf nicht als Kind von table auftreten. Andernfalls bleibt es der Fehlerkorrektur des Browsers überlassen, was er damit anstellt. Der IE zieht solche Bröckchen dann beispielsweise vor den Anfang der Tabelle.

Bei bestimmten Aktionen wird auf dem Server ein php-Script ausgeführt, welches entsprechenden "Tabellencode" zurückgibt, so daß dieser im div angezeigt wird.
Die Ausgabe des PHP lautet also:
"<tr><td>ccc</td><td>ddd</td></tr>"

Dann hättest du also im Endeffekt sowas hier:

<table>
<tr>
  <td>aaa</td>
  <td>bbb</td>
</tr>
<div id="weitere_zeilen">
<tr>
  <td>ccc</td>
  <td>ddd</td>
</tr>
</div>
</table>

Und das ist immer noch falsch.

Gibt's da eine Möglichkeit, dieses Problem zu lösen?

Ja: Bau das div-Element gleich von Anfang an korrekt in ein td ein. Dann musst du innerhalb des div natürlich wieder eine vollständige Tabelle erzeugen. Und eigentlich kannst du dann auch auf das div verzichten und stattdessen die dynamisch geladenen Teile direkt in das umgebende td einpflanzen.

Aber letztendlich fragt man sich wieder einmal: Muss das Tabellengehampel denn sein? Willst du nicht lieber versuchen, von den Layouttabellen wegzukommen und stattdessen sinnvoll strukturiertes Markup schreiben?

Ciao,
 Martin

--
Letztlich basiert alles auf dem Feuer, dem Rad, der Eins und der Null.
  (Gernot Back)