Christine: Tabellenlayout vs. HTML-Standards

Hallo zusammen,

das Forum hat mir schon oft geholfen, jetzt aber eine Frage, auf die ich auch im Archiv keine Antwort finden konnte. Es geht - leider - um Layouttabellen. Das Sorgenkind sieht so aus:

|-----------|------------|
|....(1)....|.....(2)....|
--------------------------
|..........(3)...........|
--------------------------
|...(4).....|.....(5)....|
|...........|............|
--------------------------
|..........(6)...........|
--------------------------

1,2,3 und 6 haben eine feste Höhe, 4 und 5 sollen die Tabelle unabhängig vom Inhalt auf (mindestens) 100% der Seitenhöhe aufblasen.

Eune unsaubere Lösung habe ich: indem ich die Tabelle auf 'height="100%"' setze, allen Tabellenzellen eine height zuweise, und den variablen Zellen dabei den Wert "*" gebe. Das funktioniert allerdings nur, solange ich keinen Doctype angebe. Wird das Dokument als XHTML transitional oder HTML 4.01 transitional deklariert, sind die variablen Zellen nur noch so hoch wie ihr Inhalt.

Auch der Validator meckert dann - logisch, denn weder HTML 4.01 noch XHTML 1.0 sehen für das Element "table" ein Attribut "height" vor.

Gibt es irgendeine Möglichkeit, das erwünschte Tabellenverhalten zu erzwingen, UND dabei wenigstens halbwegs standardkonform zu bleiben? Zumindest auf den Doctype würde ich ungern verzichten. Achja: eine Lösung mit CSS kommt leider auch nur begrenzt infrage, da NN4 noch unterstützt werden muss... :-/

Gruß, Christine

  1. Hallo Christine,

    soweit ich weiß, kannst Du die Tabellenhöhe laut HTML 4.01 nur als CSS angeben (style="height: 100%;").

    Ich habe einen ähnlichen Layout-Aufbau ohne Tabellen als Layout-Element sondern mit <div>-Tags aufgebaut. Da habe ich das Problem, das die mittlere Ebene immer den restlichen Bildschirm annehmen soll. style="height:*;" geht da leider nicht, und sit wahrscheinlich nicht zulässig.

    Vielleicht hat ja jemand einen Tipp für mich ;)

    Gruß
    Helmut Weber

    1. Hallo Helmut,

      style="height:*;" geht da leider nicht, und sit wahrscheinlich nicht zulässig.
      Vielleicht hat ja jemand einen Tipp für mich ;)

      veilleicht hilft ja sowas wie "top:20px; bottom:20px;"? (allerdings hat Opera6 afaik mit bottom:... Probleme wenn kein height:... dabeisteht)

      Grüße aus Nürnberg
      Tobias

      --
      Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
      1. Hallo Tobias,

        style="height:*;" geht da leider nicht, und sit wahrscheinlich nicht zulässig.
        Vielleicht hat ja jemand einen Tipp für mich ;)
        veilleicht hilft ja sowas wie "top:20px; bottom:20px;"? (allerdings hat Opera6 afaik mit bottom:... Probleme wenn kein height:... dabeisteht)

        Das Funktioniert solange gut, bis der Inhalt der mittleren Ebene kleiner ist als die Ebene selbst. Wird der Inhalt aber länger als die Darstellungshöhe der Ebene, so überlappt diese Ebene mit der nachfolgenden Ebene. Ich möchte jedoch das der Inhalt der mittleren Ebene soviel Platz "bekommt" wie nötig ist. Nur wenn der Inhalt kleiner ist als der Platz auf dem Bildschirm, möchte ich das die Fusszeile ganz unten am Browserfenster erscheint.

        Beispiel:
        http://www.prode.de/praesentation/

        Ich wollte mich einfach mal von den Tabellen als Layout-Mittel verabschieden. Aber irgendwie bin ich mit der <div>-Lösung und CSS noch nicht so zufrieden.

        Bin für jede Hilfe dankbar

        Gruß
        Helmut