Fichtl: Valide Tabellenhöhe 100% mit fixer Zeilenhöhe im IE

Hallo Forum,

ich hab da ein Problem und komm einfach nicht dahinter wie man das "valide" hinkriegt.

Folgendes möchte ich erreichen:
-------------------------------

120px hoch
so hoch wie der rest des
Fensters
-------------------------------

Das ist der dazugehörige Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <style type="text/css">
   html, body {
    height: 100%;
    margin: 0px;
   }
  </style>
 </head>
 <body>
  <table style="width:100%; height:100%;" border="1">
   <tr style="height:120px;">
    <td>TEST</td>
   </tr>
   <tr style="height:auto;">
    <td>TEST</td>
   </tr>
  </table>
 </body>
</html>

Mein Problem:
Der Mozilla macht das einwandfrei, nur die IE kennt irgendwie das "auto" nicht und deshalb wird die untere Zeile nur ganz klein dargestellt und die obere nicht 120 sondern ca. 2/3 des Fensters.

Ich hab auch schon mit height:100% in der unteren Zeile experimentiert, allerdings rechnet der IE Explorer da anders als der Mozilla und zeigt dann eine Tabelle mit 100%+120px an die natürlich zu einer Scrollbar führt.

Ich hab echt keine Ahnung wie das gehen soll und im Archiv hab ich zu dem Fall auch nichts gefunden.

Danke im Voraus und schöne Grüße

--
Fichtl
  1. Folgendes möchte ich erreichen:

    Wie mir scheint, versuchst du dein Ziel aber mit ungeeigneten Methoden zu erreichen.
    Du benutzt Tabellen für das Layout? So scheint mir das jedenfalls...
    Tabellen sollten für echte tabellarische Darstellungen genutzt werden und nicht zur Designhilfe. Das war früher zwar notwendig, aber recht unschön, weil man damit ein Element zweckentfremdet hat.
    Positioniere einfach alle deine Elemente mit CSS und verzichte auf die Tabellen.

    Gruß, rob

    1. Du benutzt Tabellen für das Layout? So scheint mir das jedenfalls...
      Tabellen sollten für echte tabellarische Darstellungen genutzt werden und nicht zur Designhilfe. Das war früher zwar notwendig, aber recht unschön, weil man damit ein Element zweckentfremdet hat.
      Positioniere einfach alle deine Elemente mit CSS und verzichte auf

      Hallo

      Wenn ich die Tabelle durch folgendes ersetze habe ich eigentlich das selbe Problem. Das untere Div wird nicht in der gewünschten Größe angezeigt.

      <div style="width:100%; height:100%;">
       <div style="height:120px; border:1px solid #000000;">TEST</div>
       <div style="height:auto; border:1px solid #000000;">TEST</div>
      </div>

      Auch mit height:100%; im unteren DIV bekomme ich das selbe Ergebnis wie mit Tabelle.

      Schöne Grüße

      --
      Fichtl
      feichtinger.info
      1. hi,

        Wenn ich die Tabelle durch folgendes ersetze habe ich eigentlich das selbe Problem. Das untere Div wird nicht in der gewünschten Größe angezeigt.

        und ob es das wird.

        <div style="width:100%; height:100%;">
        <div style="height:120px; border:1px solid #000000;">TEST</div>
        <div style="height:auto; border:1px solid #000000;">TEST</div>
        </div>

        du "wünschst", dass der untere div genau so viel höhe einnimmt, wie es sein inhalt erfordert - auto.

        Auch mit height:100%; im unteren DIV bekomme ich das selbe Ergebnis wie mit Tabelle.

        100% plus 120px sind nun mal mehr als 100% viewporthöhe.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. hi,

          und danke für deine hoch philosophischen Ausführungen die mir natürlich genau gar nicht weiterhelfen. Die Aufgabenstellung ist klar: oben 120px unten mindestens soviele Pixel wie nötig sind bis zum Fensterrand.

          Wenn du auch etwas zu der Lösung meines Problems beitragen kannst dann tu das doch bitte. Ansonsten danke ich dir das du bestätigt hast was ich vorher schon wußte.

          Schöne Grüße

          --
          Fichtl
          http://feichtinger.info
          1. hi,

            und danke für deine hoch philosophischen Ausführungen die mir natürlich genau gar nicht weiterhelfen.

            tun sie nicht?

            Die Aufgabenstellung ist klar: oben 120px unten mindestens soviele Pixel wie nötig sind bis zum Fensterrand.

            die "lösung" auch: ein wundervolles frameset.

            Wenn du auch etwas zu der Lösung meines Problems beitragen kannst dann tu das doch bitte. Ansonsten danke ich dir das du bestätigt hast was ich vorher schon wußte.

            gern geschehn.

            gruß,
            wahsaga

            --
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
            1. hallo,

              die "lösung" auch: ein wundervolles frameset.

              och nein, ich verzichte lieber. Vielleicht kommen noch bessere Vorschläge. Danke.

              --
              Fichtl
              feichtinger.info
          2. Hi,

            und danke für deine hoch philosophischen Ausführungen die mir natürlich genau gar nicht weiterhelfen. Die Aufgabenstellung ist klar: oben 120px unten mindestens soviele Pixel wie nötig sind bis zum Fensterrand.

            wieso philosophisch? Du hast exakt die richtige Information bekommen - nur nicht lesen und verstehen können.
            Der Initialwert von height entspricht der Höhe des Inhalts und nicht em, was Du über auto zu erreichen versuchst.

            Außerdem kannst Du nicht px und % mischen, um auf 100% zu kommen. Der Lösungsansatz mit der Tabelle war schon richtig, weil Tabellen die Eigenschaft haben, sich flexibel nicht nur dem Inhalt, sondern auch der Gesamthöhe anzupassen.
            Was Du nun aber konkret an Deiner Tabelle ändern mußt, überlege Dir jetzt bitte selbst und berücksichtige, daß Du Dich hier:

            das du bestätigt hast was ich vorher schon wußte

            offensichtlich geirrt hast.

            freundliche Grüße
            Ingo

            1. Hallo,

              und danke für deine hoch philosophischen Ausführungen die mir natürlich genau gar nicht weiterhelfen. Die Aufgabenstellung ist klar: oben 120px unten mindestens soviele Pixel wie nötig sind bis zum Fensterrand.

              wieso philosophisch? Du hast exakt die richtige Information bekommen - nur nicht lesen und verstehen können.
              Der Initialwert von height entspricht der Höhe des Inhalts und nicht em, was Du über auto zu erreichen versuchst.

              Mag sein das mit auto war mein Fehler, allerdings macht es der Firefox richtig (also so wie ich mir das vorstelle), sowohl mit auto als auch mit 100%, darum bin ich davon ausgegangen das auto = Rest der Tabelle. Wie gesagt mein Fehler, das philosophisch bezog sich darauf das er anhand meines Codes zu deuten versucht was ich mir wünsche.

              Außerdem kannst Du nicht px und % mischen, um auf 100% zu kommen. Der Lösungsansatz mit der Tabelle war schon richtig, weil Tabellen die Eigenschaft haben, sich flexibel nicht nur dem Inhalt, sondern auch der Gesamthöhe anzupassen.

              Haben sie? Meine wohl nicht, siehe das Eingangsposting.

              Was Du nun aber konkret an Deiner Tabelle ändern mußt, überlege Dir jetzt bitte selbst und berücksichtige, daß Du Dich hier:

              das du bestätigt hast was ich vorher schon wußte
              offensichtlich geirrt hast.

              Er hat mir bestätigt das 100% + 120px zu groß für mein Fenster sind. Mit dem auto hab ich mich geirrt (siehe oben).

              So und jetzt mal zurück zum Thema, darf ich euch in aller Höflichkeit fragen ob es euch noch gut geht? Ich schreibe ja hier nicht ins Forum weil mir so Langweilig ist sondern weil ich ein Problem habe und ich Hilfe brauche. Was hab ich bekommen?

              Eine Antwort die nichts zur Lösung beiträgt und eine Antwort die diese Antwort verteidigt und mich zu einer Entschuldigung auffordert.
              Irgendwas stimmt da nicht ..., ich stell mir mal vor ...

              Ich steh mit einem Platten an der Straße und rufe die gelben Engel. Die kommen nach einiger Zeit und erklären mir: "Eh klar das du einen Platten hast, du verwendest ja die falschen Felgen", und dann fahren sie wieder. Ich steh also wieder da mir meinem Platten und versuche jemanden anzuhalten der mir hilft. Entlich bleibt einer stehen der mir erklärt: "Die haben dir doch gesagt das deine Felgen die falschen sind, du brauchst doch nur die richtigen zu nehmen.". Ich natürlich nicht blöd und frag gleich mal nach: "Welche Felgen denn?".

              Antwort:
              "Das überlege Dir jetzt bitte selbst"

              Na was mach ich jetzt mit meinem Platten? Ich hoffe das mich jemand versteht.

              Danke und schöne Grüße

              --
              Fichtl
              feichtinger.info
              1. hi,

                Ich steh mit einem Platten an der Straße und rufe die gelben Engel.

                denen zahlst du ja auch jährlich einen beitrag, damit sie dir helfen.

                hier hingegen verlässt du dich auf die freiwillige und größtenteils uneigennützige hilfe anderer.
                nur solltest du dich darauf eben nicht _zu sehr_ verlassen - sonst kommst du zu sehr als schnorrer rüber.

                also: jetzt erst mal selber denken, wie Ingo es dir schon empfohlen hat.

                gruß,
                wahsaga

                --
                "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
                1. Hallo,

                  hier hingegen verlässt du dich auf die freiwillige und größtenteils uneigennützige hilfe anderer.
                  nur solltest du dich darauf eben nicht _zu sehr_ verlassen - sonst kommst du zu sehr als schnorrer rüber.

                  also: jetzt erst mal selber denken, wie Ingo es dir schon empfohlen hat.

                  Ich hab in dem Forum auch schon genug geholfen und ich brauch auch nicht betteln damit mir jemand hilft. Solche Diskusionen ergeben sich sowieso nur mit Leuten die keine Lösung haben. Wenn jemand weiß wie es geht dann  schreibt er das einfach hin.

                  Schöne Grüße

                  --
                  Fichtl
                  feichtinger.info
                  1. hi,

                    Ich hab in dem Forum auch schon genug geholfen und ich brauch auch nicht betteln damit mir jemand hilft.

                    vom betteln redet ja auch keiner - sondern von einem akzeptablen maß an eigenleistung.

                    Solche Diskusionen ergeben sich sowieso nur mit Leuten die keine Lösung haben.

                    solche diskussionen ergeben sich, wenn die frage nicht präzise genug, und/oder zu wenig eigeninitiative des fragers erkennbar ist.

                    Wenn jemand weiß wie es geht dann  schreibt er das einfach hin.

                    ganz bestimmt.

                    gruß,
                    wahsaga

                    --
                    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
                    1. vom betteln redet ja auch keiner - sondern von einem akzeptablen maß an eigenleistung.

                      Ich hab das Problem reduziert auf den nötigen Code, im Forum gesucht, mit Google gesucht. Nach deinem Posting hab ich sogar die Definition von auto beim w3c nachgelesen. Verschiedene Alternativen ausprobiert und leider keine für mich akzeptable Alternative gefunden.

                      Das Problem liegt darin das ich nur dann poste wenn ich nicht mehr weiter weiß und dann bekomme ich Antworten das ich mich informieren soll. Was natürlich längst geschehen ist. Aber kein Wort (Link) darüber wo ich mich informieren soll. Das kann nicht zielführend sein!

                      Alles was du mit all deinen Postings erreicht hast ist:

                      • Ich bin mir mittlerweile fast sicher das es nicht möglich ist.
                      • Meine Meinung von diesem Forum ist gesunkten.
                      • Wir beide haben eine Menge Zeit vergeudet.
                      • Ich weiß jetzt wie die Definition von "auto" ist.

                      solche diskussionen ergeben sich, wenn die frage nicht präzise genug, und/oder zu wenig eigeninitiative des fragers erkennbar ist.

                      Du kannst meine Eigeninitiative nicht beurteilen, meine Problembeschreibung war präzise genug und auf das wesentliche reduziert.

                      Wenn jemand weiß wie es geht dann  schreibt er das einfach hin.
                      ganz bestimmt.

                      Warum sollte er nicht? Es macht ja auch keinen Sinn ständig um den heißen Brei zu reden. Das widerspricht dem Zweck eines jeden Forums. Foren sind da um Informationen auszutauschen und nicht darauf hinzuweisen das die Infos bereits irgendwo zu finden sind, ohne expliziet zu sagen wo sie sind.

                      Grüße

                      --
                      Fichtl
                      1. hi,

                        Alles was du mit all deinen Postings erreicht hast ist:

                        • Ich bin mir mittlerweile fast sicher das es nicht möglich ist.
                          [...]
                        • Ich weiß jetzt wie die Definition von "auto" ist.

                        na also, ist das etwa nichts?

                        • Meine Meinung von diesem Forum ist gesunkten.

                        dass meine meinung von dir gestiegen ist, hast du mit deinem antwortstil verhindert.

                        • Wir beide haben eine Menge Zeit vergeudet.

                        ich für meinen teil sehe das nicht so.

                        gruß,
                        wahsaga

                        --
                        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
                          • Meine Meinung von diesem Forum ist gesunkten.

                          dass meine meinung von dir gestiegen ist, hast du mit deinem antwortstil verhindert.

                          damit kann ich leben...

                          • Wir beide haben eine Menge Zeit vergeudet.
                            ich für meinen teil sehe das nicht so.

                          Das hab ich mir schon fast gedacht, dir geht es wohl eher um die Masse deiner Postings, die du heute ja wieder gewaltig gesteigert hast. Ob die Qualität der Beiträge dadurch steigt steht auf einem anderen Blatt.

                          Schöne Grüße

                          --
                          Fichtl
                          http://feichtinger.info
              2. Hi,

                mir erklärt: "Die haben dir doch gesagt das deine Felgen die falschen sind, du brauchst doch nur die richtigen zu nehmen.". Ich natürlich nicht blöd und frag gleich mal nach: "Welche Felgen denn?".

                Antwort:
                "Das überlege Dir jetzt bitte selbst"

                ein unpassendes Beispiel. Denn hier wurde Dir klar genannt, wo der Fehler liegt:

                dass der untere div genau so viel höhe einnimmt, wie es sein inhalt erfordert - auto.

                Und auch ein Lösungshinweis:

                weil Tabellen die Eigenschaft haben, sich flexibel nicht nur dem Inhalt, sondern auch der Gesamthöhe anzupassen

                den ich jetzt mal, um dir auf die Sprünge zu helfen, erweitere:
                ... wenn man dies auch zuläßt.
                Und zur Erklärung, warum der Firefox das macht, was Du willst (bzw. eigentlich das gerade nicht macht): http://www.w3.org/TR/CSS21/visudet.html#the-height-property.

                freundliche Grüße
                Ingo

                1. Und auch ein Lösungshinweis:

                  weil Tabellen die Eigenschaft haben, sich flexibel nicht nur dem Inhalt, sondern auch der Gesamthöhe anzupassen
                  den ich jetzt mal, um dir auf die Sprünge zu helfen, erweitere:
                  ... wenn man dies auch zuläßt.

                  Die Tabelle will ich sehen, die im IE mit einer Doctype Angabe genau so hoch ist wie das Fenster. Wobei die Höhe der ersten Zeile fix und die zweite variabel ist.

                  Und zur Erklärung, warum der Firefox das macht, was Du willst (bzw. eigentlich das gerade nicht macht): http://www.w3.org/TR/CSS21/visudet.html#the-height-property.

                  Da steht es bestimmt irgendwo, ich denke bei 10.6.3, aber ich weiß weder was eine "line box" ist noch kann ich es herauslesen.

                  Eigentlich sollte bei height:auto; die Box wirklich nur so hoch sein wie der Inhalt. Wo hab ich da was übersehen?

                  Danke und schöne Grüße

                  --
                  Fichtl
                  1. Hi,

                    Die Tabelle will ich sehen, die im IE mit einer Doctype Angabe genau so hoch ist wie das Fenster. Wobei die Höhe der ersten Zeile fix und die zweite variabel ist.

                    könnte ich Dir zeigen. ;-)

                    Kein Problem, wenn es Dir nur um den Doctype geht. Du mußt diesen nur so wählen, daß IE trotzdem in den quirks mode wechselt, denn im standards-compliant mode funktioniert die von mir angesprochene Flexibilität einer Tabelle im IE nicht.
                    Spricht denn etwas dagegen, den IE in den quirk mode zu versetzen?

                    freundliche Grüße
                    Ingo

                    1. Die Tabelle will ich sehen, die im IE mit einer Doctype Angabe genau so hoch ist wie das Fenster. Wobei die Höhe der ersten Zeile fix und die zweite variabel ist.
                      könnte ich Dir zeigen. ;-)

                      Kein Problem, wenn es Dir nur um den Doctype geht. Du mußt diesen nur so wählen, daß IE trotzdem in den quirks mode wechselt, denn im standards-compliant mode funktioniert die von mir angesprochene Flexibilität einer Tabelle im IE nicht.
                      Spricht denn etwas dagegen, den IE in den quirk mode zu versetzen?

                      Leider ja, denn dann funktioniert ein anderer Teil des Layouts wieder nicht weil der IE die DIVs falsch berechnet.

                      Quirks Mode ist nicht die Lösung und jetzt?

                      --
                      Fichtl
                      feichtinger.info
                      ps.: Wo steht jetzt eigentlich das der Firefox die Höhe richtig berechnet? Eigentlich machts doch der IE richtig oder?
                      1. Hi,

                        Spricht denn etwas dagegen, den IE in den quirk mode zu versetzen?

                        Leider ja, denn dann funktioniert ein anderer Teil des Layouts wieder nicht weil der IE die DIVs falsch berechnet.

                        Das glaube ich nicht. Oder willst Du die 5er-IEs unberücksichtigt lassen? Bei denen wird nämlich im standard-compliant mode noch nicht das korrekte Box-Modell verwendet. Wenn Du nun also eine Anpassung für die alten IEs vornimmst, kannst Du diese doch auch gleich für den IE6 machen und ihn in den quirks mode schicken, oder?

                        freundliche Grüße
                        Ingo

                        1. Das glaube ich nicht. Oder willst Du die 5er-IEs unberücksichtigt lassen? Bei denen wird nämlich im standard-compliant mode noch nicht das korrekte Box-Modell verwendet. Wenn Du nun also eine Anpassung für die alten IEs vornimmst, kannst Du diese doch auch gleich für den IE6 machen und ihn in den quirks mode schicken, oder?

                          Keine Rücksicht auf die 5er. Soweit ich aus unten stehendem Link ersehen kann gibt es den Compliant-Mode erst ab der Version 6. Auch im 6er wird also noch falsch gerechnet wenn der Compliant-Mode ausgeschaltet ist:

                          "Noncompliant Behavior
                          When the !DOCTYPE declaration does not switch on standards-compliant mode, as with earlier versions of Internet Explorer" ...

                          http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnie60/html/cssenhancements.asp
                          "[link:" scheint nicht zu funktionieren?

                          Schöne Grüße

                          --
                          Fichtl
                          feichtinger.info