Thomas Meyer: width und colspan

Moin, moin,

das Problem wurde hier bereits mehrfach diskutiert, aber die
endgültige Lösung offensichtlich noch nicht gefunden.

Es geht darum, die linke Spalte einer Tabelle zu fixieren
und die rechte mit dem Vergrößern des Fensters ebenfalls zu
vergrößern. Gleichzeitig soll eine zweite Zeile über beide
Spalten spannen _und_ die _gesamte_ Breite beider Spalten
soll Text enthalten.

<table border="1" style="width: 100%;">
  <tr>
    <td style="width: 160px;">Berlin</td>
    <td>Hamburg</td>
  </tr>
  <tr>
    <td colspan="2">Miljöh Hamburg Berlin
      Miljöh Hamburg Berlin <br>
      Miljöh Hamburg Berlin <br>
      Miljöh Hamburg Berlin </td>
  </tr>
</table>

Dies klappt mit Mozilla unter Windows genauso wie unter
Linux mit Mozilla, Galeon und Konqueror. Ein Problem gibt
es nur mit IE6, sobald der Text länger wird als die erste
Spaltenbreite. Dann vergisst/ignoriert IE6 die Breitenangabe
und stellt die Spalten in der oberen Zeile - die ohne
colspan - beide in variabler Breite dar und zwar in einer
Breite als ob der Inhalt der unteren Zeile zur
linken oberen Spalte gehörte.

Der Effekt tritt auch mit html-Tags und auch mit css-ids
auf. (SELFTHTML-Formarchiv (HTML) Tabellenbreiten von
Fokko, 22. 11. 2003. Antwort von Thomas Luethi, 22. November
2003)

Mit dem standard compliant mode des IE6 kann es IMHO auch
nichts zu tun haben. Man kann die DTD-Zeile völlig löschen
und der Effekt ist noch derselbe.

Ist dies ein bug im IE6? Gibt es einen workaround? Oder
arbeitet IE6 nur noch im standard compliant mode
(6.0.2800.1106.xpsp2-030422-1633)?

Beste Grüße an alle, thow
thowmeyer@gmx.net

  1. Hallo,

    ich hatte nicht erwartet, dass in den letzten Tagen soviel zu diesem
    Thema geschrieben wurde.
    Die Lösung ist colgroup, col width, und ein einfaches col.

    Dank an Gunther selfforum@top-topics.com.

    Beste Grüße
    thowmeyer@gmx.net

    1. Hallo Thomas,

      dann poste mal, wie Du es gemacht hast. Bei mir hat es mit colgroup nämlich auch nicht geklappt.

      Gruß, Jürgen

      1. Hallo Jürgen,

        dann poste mal, wie Du es gemacht hast. Bei mir hat es mit

        colgroup nämlich auch nicht geklappt.

        <table border="1" width="100%">
             <colgroup>
                <col width="160">
                <col>
             </colgroup>
            <tr>
              <td>1. Zeile, 2. Spalte</td>
              <td>1. Zeile, 3. Spalte</td>
            </tr>
            <tr>
              <td colspan="2">2. Zeile, 2. und 3. Spalte, 2. und 3. Spalte
        2. Zeile, 2. und 3. Spalte, 2. und 3. Spalte</td>
            </tr>
            <tr>
              <td>3. Zeile, 2. Spalte</td>
              <td>3. Zeile, 3. Spalte</td>
            </tr>
                <!-- usw. andere Zeilen der Tabelle -->
        </table>

        Allerdings habe ich mich zu früh gefreut. Wenn ich einen Screenshot
        in die zweite Zeile einbaue, man muss nur bei img src eine Breite
        vorgeben, wird die linke obere Zelle doch wieder breiter.

        Gruß, thow