Axel Richter: Breitenangabe bei Tabellenspalten durch colspan verhindert

Beitrag lesen

Hallo,

<table border="1" cellpadding="0" cellspacing="0" width="100%" style="table-layout:fixed; border-collapse:collapse; border-color:#ffffff; border-style:solid;">
   <tr bgcolor="#cccccc">
    <td align="left" valign="top" style="width:12%;">&nbsp;</td>
    <td align="left" valign="top" style="width:200px;" colspan="3">
    </td>
    <td align="left" valign="top" style="width:530px;">&nbsp;</td>
    <td align="left" valign="top">&nbsp;</td>
    <td align="left" valign="top">&nbsp;</td>
   </tr>
   <tr bgcolor="#efefef">
    <td align="left" valign="top" style="width:12%;">&nbsp;</td>
    <td align="left" valign="top" style="width:30px;">&nbsp;</td>
    <td align="left" valign="top" style="width:10px;">&nbsp;</td>
    <td align="left" valign="top" style="width:160px;">&nbsp;</td>
    <td align="left" valign="top">&nbsp;</td>
    <td align="left" valign="top" colspan="2">&nbsp;</td>
   </tr>
   <tr bgcolor="#cccccc">
    <td align="left" valign="top" colspan="7">&nbsp;</td>
   </tr>
  </table>

Es handelt sich jeweils um Spalte 2, 3 und 4.
Wie man sieht habe ich für die colspan-Spalte eine Größe von 200 Pixel definiert. Nun habe ich jedoch das Problem, dass die Breite der drei Spalten in den Folgezeilen nicht mehr frei definiert werden kann - die Breite wird gleichmäßig auf die 200 Pixel aufgeteilt. Wie man im Code sieht möchte ich jedoch Spalte 3 auf 10 Pixel setzen.

Es handelt sich um Spalten, also definiere doch auch Spalten. Nimm alle style="width:.."-Angaben aus den Zellen raus und definiere Spaltenbreiten:

<colgroup><col style="width:12%;"><col style="width:30px;"><col style="width:10px;"><col style="width:160px;"><col style="width:530px;"><col><col></colgroup>

Wobei die Spalten1, 6 und 7 dann natürlich bei geringen Fensterbreiten verschwinden. Wenn dort Zellen mit Inhalt drin stehen, solltest Du für diese Zellen auch noch overflow:hidden; vereinbaren.

viele Grüße

Axel