looking4help: Tabelle 100% im IE mit loose.dtd möglich?

Hallo,
das haben sicher schon viele gefragt, aber ich habe leider dazu nichts im Forum gefunden: ich möchte eine einfache Tabelle (height:100%) mit 3 Zeilen, wobei die erste und die letzte eine feste Größe haben sollen und die Zweite den restlichen Platz ausfüllen sollen. Vorgabe das Ganze mit Dokumenttyp loose.dtd. Funktioniert im Firefox aber nicht im IE. Was mache ich falsch?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
body,html{
    margin:   0px;
    padding:  0px;
    padding-left: 0px;
    padding-right: 0px;
 height: 100%;
}
</style>
    <title>xxx</title>
</head>
<body>
 <table border="1" cellpadding="0" cellspacing="0" style="width:100%; height:100%">
  <tr style="height:84px">
   <td style="height:84px">
    oben
   </td>
  </tr>
  <tr>
   <td style="vertical-align:top; height:100%">
    mitte
   </td>
  </tr>
  <tr style="height:84px">
   <td style="height:84px">
    unten
   </td>
  </tr>
 </table>
</body>

  1. Hi looking4help!

    Was mache ich falsch?
    </body>

    Du hast fehlerhaften <html>-Code.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Hello out there!

      Du hast fehlerhaften <html>-Code.

      An welcher Stelle willst du einen Fehler sehen? Der Validator sieht keinen.

      See ya up the road,
      Gunnar

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

        Du hast fehlerhaften <html>-Code.
        An welcher Stelle willst du einen Fehler sehen? Der Validator sieht keinen.

        Ich hätte "Du hast fehlerhaften </html>-Code." schreiben sollen.

        Soweit ich weiß wird das html-Tag immer noch abgeschlossen.

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. Hello out there!

          Soweit ich weiß wird das html-Tag immer noch abgeschlossen.

          Ja, das wird es - mit '>', wie alle Tags.

          Oder solltest du den Unterschied zwischen "Tag" und "Element" noch nicht kennen? Dann schnell mal bei [MI] nachgelesen!

          Du meinst sicher das 'html'-Element.

          Und mal schnell in der [DTD] nachgelesen:
          <!ELEMENT HTML O O (%html.content;)    -- document root element -->

          Oder auch in der Spec [HTML401 §21], da findest du auch durch Click auf "HTML" erklärt, wofür die 'O' stehen [HTML401 §7.3].

          See ya up the road,
          Gunnar

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

            Soweit ich weiß wird das html-Tag immer noch abgeschlossen.
            Ja, das wird es - mit '>', wie alle Tags.
            Oder solltest du den Unterschied zwischen "Tag" und "Element" noch nicht kennen? Dann schnell mal bei [MI] nachgelesen!

            Sprache ist flüssig. Du weißt, was ich meinte...

            Du meinst sicher das 'html'-Element.

            Ich wusste nicht, dass es optional ist.
            Kommt damit aber auch jeder Browser zurecht?
            MMn fehlt das schließende </html>.

            MfG H☼psel

            --
            "It's amazing I won. I was running against peace, prosperity, and incumbency."
            George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
            Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
            1. Hello out there!

              Sprache ist flüssig.

              Fachsprache ist genau.

              Ich wusste nicht, dass es optional ist.
              Kommt damit aber auch jeder Browser zurecht?
              MMn fehlt das schließende </html>.

              Wie kann etwas Optionales fehlen?

              Das 'html'-Element wird implizit geschlossen - durch das Ende des Quelltextes. Warum sollte ein Browser nicht damit zurechtkommen?

              See ya up the road,
              Gunnar

              --
              „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
              1. Was meinst du mit "restlichen Platz"? Du hast bedacht, dass deren Inhalt auch mehr Platz brauchen könnte als 100% - 168px?

                Mit restlichen Platz meinte ich den Platz der übrig bleibt, wenn man von der 100% Höhe die 84px für den Kopf und die 84px für den Fuß abzieht (so was wie 100%-168px). Wenn der mittlere Teil größer wird, dann soll es natürlich einen Scrollbalken geben - aber eben erst dann!

                • Du benutzt Tabellen zum Layouten.

                Ein entsprechender Vorschlag mit DIVs würde mir auch weiter helfen.

                • Du benutzt missbilligte HTML-Attribute anstatt CSS-Angaben zum Layouten.

                Als da wären? Wenn ja ändert das was an meinem Problem?

                • Du schreibst CSS-Angaben inline in 'style'-Attribute, anstatt _alle_ CSS-Angaben ins zentrale Stylesheet zu schreiben.

                Wohl war, ich will mit dem Code auch kein Schönheitspreis gewinnen und so sieht man halt gleich, wo was angewendet wurde.

                • Last, but not least: Du hast die FAQ nicht gelesen.

                Habe ich gelesen, aber das löst mein Problem nicht!
                Also ich versuche es nochmal zu erklären (ist mir wohl nicht wirklich geglückt beim ersten mal):
                Ich möchte im IE eine Seite mit einem oberen und unterem Bereich der eine feste Höhe hat und einen mittleren Bereich, der bei wenig Inhalt eben so groß ist, das der untere Bereich am unteren Browserrand bleibt und, wenn er größer wird, halt einfach ein Scrollbalken für die ganze Seite erscheint (ist ja normal). Das Problem: wenn ich den Doctype loose.dtd verwende (das ist leider in diesem Fall Vorgabe und darf nicht geändert werden), macht mir der IE den oberen und unteren Bereich größer. Im Firefox gehts. Nochmal der Code zum Problem (diesmal natürlich mit </html>):
                <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
                <html>
                <head>
                <style type="text/css">
                body,html{ margin:0px; padding:0px; height:100%; }
                </style>
                <title>xxx</title>
                </head>
                <body>
                <table border="1" style="width:100%; height:100%">
                <tr style="height:84px"><td>oben</td></tr>
                <tr><td>mitte</td></tr>
                <tr style="height:84px"><td>unten</td></tr>
                </table>
                </body>
                </html>
                Wenn Ihr es im IE anschaut, werdet Ihr sehen, dass der obere Bereich z.B. mehr als die gewünschten 84px hat.

                Vielen Dank für Eure Mühe!

                1. Hello out there!

                  Warum plazierst du deine Antwort nicht unter das Posting, auf das du antwortest, also unter https://forum.selfhtml.org/?t=152281&m=990653? Die Baumstruktur dieses Forums ist dir bewusst? [FOREN-BOARDS]

                  • Du benutzt missbilligte HTML-Attribute anstatt CSS-Angaben zum Layouten.

                  Als da wären?

                  'border', 'cellpadding', 'cellspacing'.

                  Wenn ja ändert das was an meinem Problem?

                  Nein, es macht aber den Quelltext übersichtlicher und hilft somit, Probleme besser zu erkennen.

                  • Du schreibst CSS-Angaben inline in 'style'-Attribute, anstatt _alle_ CSS-Angaben ins zentrale Stylesheet zu schreiben.

                  Wohl war, ich will mit dem Code auch kein Schönheitspreis gewinnen und so sieht man halt gleich, wo was angewendet wurde.

                  Nein, das Gegegteil ist der Fall. Ein zentrales Stylesheet mit _allen_ CSS-Angaben macht den Quelltext übersichtlicher und hilft somit, Probleme besser zu erkennen.

                  • Last, but not least: Du hast die FAQ nicht gelesen.

                  Habe ich gelesen,

                  Dann lies nochmal!

                  aber das löst mein Problem nicht!

                  Du bist auch den Links gefolgt?

                  Ich möchte im IE eine Seite mit einem oberen und unterem Bereich der eine feste Höhe hat und einen mittleren Bereich, der bei wenig Inhalt eben so groß ist, das der untere Bereich am unteren Browserrand bleibt und, wenn er größer wird, halt einfach ein Scrollbalken für die ganze Seite erscheint (ist ja normal).

                  Genau das ist im verlinkten SELFHTML-Artikel realisiert.

                  See ya up the road,
                  Gunnar

                  --
                  „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
                  1. Hello out there!

                    Warum plazierst du deine Antwort nicht unter das Posting, auf das du antwortest, also unter https://forum.selfhtml.org/?t=152281&m=990653? Die Baumstruktur dieses Forums ist dir bewusst? [FOREN-BOARDS]

                    Hatte ich probiert, aber das Formular ließ sich an der Stelle nicht abschicken, sonst gebe ich Dir natürlich recht (vielleicht klappts heute).

                    • Du benutzt missbilligte HTML-Attribute anstatt CSS-Angaben zum Layouten.

                    Ok, danke das war ein konkreter Hinweis.

                    Wenn ja ändert das was an meinem Problem?

                    Nein, es macht aber den Quelltext übersichtlicher und hilft somit, Probleme besser zu erkennen.

                    Ok.

                    • Du schreibst CSS-Angaben inline in 'style'-Attribute, anstatt _alle_ CSS-Angaben ins zentrale Stylesheet zu schreiben.

                    Wohl war, ich will mit dem Code auch kein Schönheitspreis gewinnen und so sieht man halt gleich, wo was angewendet wurde.

                    Nein, das Gegegteil ist der Fall. Ein zentrales Stylesheet mit _allen_ CSS-Angaben macht den Quelltext übersichtlicher und hilft somit, Probleme besser zu erkennen.

                    Kann ich ja alles verstehen.

                    • Last, but not least: Du hast die FAQ nicht gelesen.

                    Habe ich gelesen,

                    Dann lies nochmal!

                    Ja.

                    aber das löst mein Problem nicht!

                    Du bist auch den Links gefolgt?

                    Ja.

                    Ich möchte im IE eine Seite mit einem oberen und unterem Bereich der eine feste Höhe hat und einen mittleren Bereich, der bei wenig Inhalt eben so groß ist, das der untere Bereich am unteren Browserrand bleibt und, wenn er größer wird, halt einfach ein Scrollbalken für die ganze Seite erscheint (ist ja normal).

                    Genau das ist im verlinkten SELFHTML-Artikel realisiert.

                    Meinst Du einen "feststehenden Footer"? Den will ich eben nicht!
                    Gebe zu  das wurde aus meiner Erklärung immer noch nicht ganz klar, deshalb zur Ergänzung: Wird der mittlere Inhalt größer als das Browserfenster, so soll der komplette Inhalt scrollbar sein, also auch der Fußteil! Am ehesten entspricht dem der "einfache Footer", aber sobald der Inhalt im mittleren Teil sehr klein wird, wandert der Fußteil ja auch entsprechend weiter nach oben, ich hätte aber gerne, dass der Fußteil am unteren Bildschirm bleibt nur bei längerem mittleren Teil erst durch Scrollen nach unten sichtbar wird.

                    Gruß looking4help

                    1. Hello out there!

                      Meinst Du einen "feststehenden Footer"? Den will ich eben nicht!
                      Gebe zu  das wurde aus meiner Erklärung immer noch nicht ganz klar,

                      Ja.

                      deshalb zur Ergänzung: Wird der mittlere Inhalt größer als das Browserfenster, so soll der komplette Inhalt scrollbar sein, also auch der Fußteil!

                      Da fällt mir auch gerade nur eine JavaScript-Lösung ein: 'onload' und 'onresize' Fenstergröße (nicht Bildschirmgröße!!!) auslesen, Höhe von Header und Footer davon abziehen, Ergebnis dem Rest als Mindesthöhe zuweisen:

                      http://gunnarbittersmann.de/selfhtml-forum/t152281/footer.html

                      Für alte IEs statt 'minHeight' 'height' sowie statt 'window.innerHeight' 'document.documentElement.clientHeight' bzw. 'document.body.clientHeight' verwenden. [SELFHTML]

                      Für oberste(s) Nachfahrenlement(e) im mittleren Bereich noch oberen Rand auf 0 setzen, unten entsprechend. Auf Hacks für IE hab ich grad keine Lust; oder macht der’s nicht sowieso falsch, also hier „richtig“?

                      See ya up the road,
                      Gunnar

                      --
                      „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  2. Hello out there!

    und die Zweite den restlichen Platz ausfüllen sollen.

    Was meinst du mit "restlichen Platz"? Du hast bedacht, dass deren Inhalt auch mehr Platz brauchen könnte als 100% - 168px?

    Was mache ich falsch?

    • Du benutzt Tabellen zum Layouten.

    • Du benutzt missbilligte HTML-Attribute anstatt CSS-Angaben zum Layouten.

    • Du schreibst CSS-Angaben inline in 'style'-Attribute, anstatt _alle_ CSS-Angaben ins zentrale Stylesheet zu schreiben.

    • Last, but not least: Du hast die FAQ nicht gelesen.

    See ya up the road,
    Gunnar

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