corner: <table height=100%...> funktioniert nicht

Hallo zusammen,

vielleicht kann mir jemand weiterhelfen. Ich habe meine Seite bisher mit Hilfe von Frames angezeigt. Jetzt möchte ich aber umsteigen auf ein Tabellen- oder DIV-basiertes Layout. Der Anzeigebereich der Seite soll wie bei Frames 100% des Fensters belegen, auch in der Höhe.
Wenn ich für die Tabelle aber height=100% oder style="height:100%" notiere, wird dies vom Browser aber nie umgesetzt (sowohl IE als auch Firefox).
Es könnte an der Deklaration

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">

liegen. Wenn ich die nämlich weglasse, wird die Tabelle über die gesamte Höhe angezeigt. Nun frage ich mich, wie wichtig die Deklaration ist und ob ich sie einfach weglassen kann. Allerdings kommt dann die Anzeige meiner Stylesheets merkwürdigerweise durcheinander.
Oder gibt es eine alternative Deklaration, die prozentuale Höhenangaben zulässt.
Bei DIV besteht dasselbe Problem.

Vielen Dank für alle Antworten

corner

  1. Das ist bei mir auch so. Sobald ich ein !DOCTYPE angebe, kann ich Bereiche nicht mehr mit height über den ganzen Body ausdehen.
    Wenn du die Deklaration weglässt, funktioniert die Seite zwar noch, ist aber nicht mehr gültig und du kannst Browsern nicht sagen, wie die Seite angezeigt werden soll.
    Aber mal ganz ehrlich... Lass die Seite doch so lang werden, wie der Inhalt lang ist.

    1. Das ist bei mir auch so. Sobald ich ein !DOCTYPE angebe, kann ich Bereiche nicht mehr mit height über den ganzen Body ausdehen.

      Gunnar (siehe eine Nachricht vorher) hat eine Lösungsmöglichkeit genannt (bei mir funktionierts jedenfalls):
      Auch bei allen höherrangigen Elemente die Höhe mit 100% angeben. Bei mir war dies z.B. vor <table> noch <body>.

      1. Hello out there!

        Auch bei allen höherrangigen Elemente die Höhe mit 100% angeben. Bei mir war dies z.B. vor <table> noch <body>.

        Ähm, und vor 'body'?

        See ya up the road,
        Gunnar

        --
        „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
        1. Auch bei allen höherrangigen Elemente die Höhe mit 100% angeben. Bei mir war dies z.B. vor <table> noch <body>.

          Ähm, und vor 'body'?

          Da kam dann wohl noch <html>. Hatte aber gar nicht gewusst, dass man dafür auch style angeben kann. Beim IE hat es auch ohne Angabe in <html> funktioniert, allerdings nicht in Firefox und Opera.

  2. Hello out there!

    Jetzt möchte ich aber umsteigen auf ein Tabellen- oder DIV-basiertes Layout.

    Das eine ist nicht besser als das andere (Tabellen sind kein geeignetes Layoutmittel; [Divitis).

    Schreibe dein Markup ohne Hinblick auf ein jetzt oder später gewünschtes Layout. Einfach nur Textpassagen ihrer Funktion in der Dokumentstruktur entsprechend auszeichnen; dabei können auch WENIGE gruppierende 'div'-Elemente sinnvoll sein.

    DANACH formatierst du – mit http://de.selfhtml.org/css/@title=CSS!

    Es könnte an der Deklaration
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    liegen. Wenn ich die nämlich weglasse, wird die Tabelle über die gesamte Höhe angezeigt.

    Herzlich willkommen im Quirks-Modus ...

    Nun frage ich mich, wie wichtig die Deklaration ist und ob ich sie einfach weglassen kann. Allerdings kommt dann die Anzeige meiner Stylesheets merkwürdigerweise durcheinander.

    ... den du eben deshalb durch DOCTYPE-Angabe verlassen solltest.

    Im standards compliant mode bezieht sich die Höhenangabe in Prozent auf die Höhe der umschließenden Box (des Elternelements). Wenn dafür nichts angegeben ist, also der Defaultwert 'auto' gilt, wird eine Box nur so hoch wie nötig.

    Soll eine Box so hoch sein wie der Viewport, müssen auch alle umschließenden Boxen 100%ige Höhe haben – bis hoch zum Wurzelelement.

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)