Peter Thomassen: Prozentangaben für Tabellenhöhe in der HTML4.01 strict

Hallo,
wie der Thementitel schon sagt, habe ich das Problem, dass sowohl das <table>-Attribut height als auch das CSS-Attribut height mit Prozentwerten nicht funktionieren, sondern nur mit Pixel- oder Längenangaben (z.B. 5cm).
Ich brauche das allerdings! Da muss es doch eine Möglichkeit geben, ich bin doch wohl nicht der einzige, der das braucht?!
Damit ihr nicht so viel Quellcode habt, wenn ihr ihn euch angucken möchtet: http://www.assistance4all.de/index2.php?page=blank

Dann noch ein weiteres Problem:
Wenn man eine Seite mit längerem Inhalt öffnet, z.B. http://www.assistance4all.de/index2.php?page=lexicon, erscheint ein horizontaler Scrollbalken. Woran liegt das?

Ich habe noch eine andere Variante der Seite (http://www.assistance4all.de/), da tritt dieses Problem nicht auf - einziger Unterschied: <!DOCTYPE ...> eingefügt und ein paar CSS-Attribute ausgewechselt, aber _kein_ width-Attribut!

Ich weiß nicht, woran das liegt ... könnt ihr mir helfen?

Ich benutze Windows XP Professional mit IE6.

Danke,
Peter

  1. Hi,

    Ich habe noch eine andere Variante der Seite (http://www.assistance4all.de/), da tritt dieses Problem nicht auf - einziger Unterschied: <!DOCTYPE ...> eingefügt und ein paar CSS-Attribute ausgewechselt, aber _kein_ width-Attribut!

    Ach das ist ja lustig! Jetzt habe ich mal das Attribut scroll="auto" aus dem <body>-Tag genommen, und schon ist der horizontale Scrollbalken weg :))
    Ohne Scrollbalken: http://www.assistance4all.de/index2.php?page=lexicon
    Mit Scrollbalken : http://www.assistance4all.de/index2.php?page=lexicon&scroll=auto

    Bye,
    Peter

    1. Scroolbalken unter IE 6de únd Opera 5.12 de auf MS WIN 98SE no Problem
      MdG
      Jens

      1. Hi,

        Scroolbalken unter IE 6de únd Opera 5.12 de auf MS WIN 98SE no Problem

        http://www.assistance4all.de/index2.php?page=lexicon oder
        http://www.assistance4all.de/index2.php?page=lexicon&scroll=auto oder beides?

        Bye,
        Peter

        1. Hallo !

          Scroolbalken unter IE 6de únd Opera 5.12 de auf MS WIN 98SE no Problem

          http://www.assistance4all.de/index2.php?page=lexicon oder
          http://www.assistance4all.de/index2.php?page=lexicon&scroll=auto oder beides?

          Bei mir (Konfiguration wie oben) nur ohne das scroll=auto Dingens (von Attribut kann wohl kaum sprechen: http://www.w3.org/TR/html401/index/attributes.html).

          Gruß,

          kerki

          1. Hi,

            Bei mir (Konfiguration wie oben) nur ohne das scroll=auto Dingens (von Attribut kann wohl kaum sprechen: http://www.w3.org/TR/html401/index/attributes.html).

            Danke für deine Hilfe. Ja, richtig, dieses "Attribut" ist MS' Erfindung, aber wie soll man das sonst nennen? *gg*

            Bye,
            Peter

  2. Hi Peter,

    öhm, irgendwie versteh ich nicht so recht, was Du eigentlich willst. Deine Seite hat jetzt, so wie sie ist, nicht sehr viel mit HTML 4.01 Strict zu tun. Wieso machst Du Dir dann Gedanken darüber, dass height mit Prozentangaben nicht HTML 4.01 Strict sei?

    Grüße,

    Utz

    1. Hi Utz,

      öhm, irgendwie versteh ich nicht so recht, was Du eigentlich willst. Deine Seite hat jetzt, so wie sie ist, nicht sehr viel mit HTML 4.01 Strict zu tun. Wieso machst Du Dir dann Gedanken darüber, dass height mit Prozentangaben nicht HTML 4.01 Strict sei?

      Das tu ich ja gar nicht. Ich wundere mich nur, dass der IE6 height mit Prozentangaben einfach ignoriert! Wenn ich die DOCTYPE-Angabe weglasse, geht es!

      Bsp:
      [   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">   ]
      <html>
      <head><title>test</title></head>

      <body>

      <table height="100%" style="background-color: red">
        <tr>
          <td>bla</td>
        </tr>
      </table>

      </body>
      </html>

      An der Hintergrundfarbe kannst du leicht erkennen, wie hoch die Tabelle ist. Mit der DOCTYPE-Angabe so hoch wie der Inhalt der Zelle, und ohne eben so groß wie die Anzeigefläche des Browsers.

      Wieso hat meine Seite nicht viel mit HTML4.01 Strict zu tun? Über ICQ geht's schneller, wenn du's hast ... 82427692.

      Bye,
      Peter

      1. Hi Peter,

        Das tu ich ja gar nicht. Ich wundere mich nur, dass der IE6 height mit Prozentangaben einfach ignoriert! Wenn ich die DOCTYPE-Angabe weglasse, geht es!

        Ah, jetzt verstehe ich's! Folgendes: Wenn Du einen Doctype definierst, interpretiert IE6 (und BTW Mozilla/NS6 IIRC auch) Deinen Quellcode in diesem Sinne. Wenn Dein Code allerdings nicht valide ist, kommt es "Falschdarstellungen", d.h. der Browser verhält sich nicht so, wie Du Dir wünschst, sondern entsprechend Spezifikation.

        Lässt Du den Dioctype weg, arbeitet der Browser im Quirks(o.s.ä.)-Modus, d.h. er guckt mal, was er machen kann und verhält sich damit in etwa so wie die Browser bis Generation 5.

        In HTML 4.01 Strict gibt es kein height-Attribut bei Tabellen (weder für Pixel noch Prozent), der IE verhält sich also völlig korrekt. Mit Doctype: Das soll Strict sein, da ist aber was, was nicht dazugehört, also: ignorieren.
        Ohne Doctype: Ja, das height kenn ich irgend woher, das mach ich.

        Wieso hat meine Seite nicht viel mit HTML4.01 Strict zu tun? Über ICQ geht's schneller, wenn du's hast ... 82427692.

        ICQ hab ich nicht, deshalb hier. Es gibt ein sehr praktisches Tool, den Validator des W3C, der HTML-Dateien gegen jeweilige Doctypes validiert http://validator.w3.org/ - lässt man den über Deine Seite drüber (insbesondere die mit dem Lexicon-Inhalt), kommt da eine _sehr_ ausführliche Fehlerliste bei raus.

        Grüße,

        Utz

        1. Hi Utz!

          Das tu ich ja gar nicht. Ich wundere mich nur, dass der IE6 height mit Prozentangaben einfach ignoriert! Wenn ich die DOCTYPE-Angabe weglasse, geht es!

          Ah, jetzt verstehe ich's! Folgendes: Wenn Du einen Doctype definierst, interpretiert IE6 (und BTW Mozilla/NS6 IIRC auch) Deinen Quellcode in diesem Sinne. Wenn Dein Code allerdings nicht valide ist, kommt es "Falschdarstellungen", d.h. der Browser verhält sich nicht so, wie Du Dir wünschst, sondern entsprechend Spezifikation.

          Klar.

          Lässt Du den Dioctype weg, arbeitet der Browser im Quirks(o.s.ä.)-Modus, d.h. er guckt mal, was er machen kann und verhält sich damit in etwa so wie die Browser bis Generation 5.

          In HTML 4.01 Strict gibt es kein height-Attribut bei Tabellen (weder für Pixel noch Prozent), der IE verhält sich also völlig korrekt. Mit Doctype: Das soll Strict sein, da ist aber was, was nicht dazugehört, also: ignorieren.
          Ohne Doctype: Ja, das height kenn ich irgend woher, das mach ich.

          Das wusste ich schon so etwa, danke nochmal für die genauen Infos. Aber ich brauche ja eine Alternative, damit die weiße mittlere Spalte von http://www.assistance4all.de/index2.php so weit runter geht wie die der index.php (einfach http://www.assistance4all.de/)!

          Wieso hat meine Seite nicht viel mit HTML4.01 Strict zu tun? Über ICQ geht's schneller, wenn du's hast ... 82427692.

          ICQ hab ich nicht, deshalb hier. Es gibt ein sehr praktisches Tool, den Validator des W3C, der HTML-Dateien gegen jeweilige Doctypes validiert http://validator.w3.org/ - lässt man den über Deine Seite drüber (insbesondere die mit dem Lexicon-Inhalt), kommt da eine _sehr_ ausführliche Fehlerliste bei raus.

          Klar. Aber er sagt mir nicht, wie ich es machen muss, damit das Ergebnis so aussieht, wie es mir gefällt :))

          Danke,
          Peter

          1. Hi Peter,

            Das wusste ich schon so etwa, danke nochmal für die genauen Infos. Aber ich brauche ja eine Alternative, damit die weiße mittlere Spalte von http://www.assistance4all.de/index2.php so weit runter geht wie die der index.php (einfach http://www.assistance4all.de/)!

            Ich frag's nochmal: warum lässt Du nicht einfach den Doctype weg?

            Alternative: Nimm das, was Kerki weiter oben gepostet hat, das verlegt das Problem weg von HTML nach CSS, beides dann valide, beides ohne Probs auch wenn der Doctype drin bleibt.

            Grüße,

            Utz

            1. Hi Utz,

              Ich frag's nochmal: warum lässt Du nicht einfach den Doctype weg?

              Wozu ist er da, wenn man ihn weglässt? Den <html>-Tag kann man ja auch weglassen.

              Alternative: Nimm das, was Kerki weiter oben gepostet hat, das verlegt das Problem weg von HTML nach CSS, beides dann valide, beides ohne Probs auch wenn der Doctype drin bleibt.

              Hab ich jetzt so.

              1. Hi Peter,

                Wozu ist er da, wenn man ihn weglässt?

                Er ist dazu da anzugeben, auf Basis welcher DTD die Seite erstellt wurde - damit der Browser ggf. weiß, was er damit zu tun hat. Es gibt in der Tat Elemente, die unterschiedliche Bedeutung haben, je nachdem, auf Basis welcher DTD sie benutzt werden, z.B. <noframes>. Von praktischer Bedeutung ist das zurzeit allerdings so gut wie nicht.
                Aber andersrum gesehen: Wenn es keine DTD gibt, gegen die das Dokument valide wäre, gibt es exakt keinen Grund, durch Setzen des Doctypes zu behaupten, es gäbe doch eine. Also in dem Fall lieber weglassen.

                Den <html>-Tag kann man ja auch weglassen.

                Oh, ich kann mir schon ein Beispiel ausdenken, wo ich auch <html> mal wegließe - wenn eine Datei z.B. sowohl als Standalone-Dokument wie auch als Include-Datei benutzt wird. Na ja, ist schon _sehr_ theoretisch, zugegeben :-)

                Grüße,

                Utz

  3. Hallo !

    wie der Thementitel schon sagt, habe ich das Problem, dass sowohl das <table>-Attribut height als auch das CSS-Attribut height mit Prozentwerten nicht funktionieren, sondern nur mit Pixel- oder Längenangaben (z.B. 5cm).

    Das ist so nicht richtig!

    Bei prozentualer Angabe der Höhe eines Elementes richtet sich diese nach der Höhe des jeweils übergeordneten Elementes. Ist diese nicht spezifiziert, sind 100% davon auch nicht spezifiziert (100% von nix bleibt nix).

    Versuch 'mal dieses:
    ---------------------------------------------------------------------
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
         "http://www.w3.org/TR/html4/strict.dtd">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>100% height</title>
    <style type="text/css">
    html { height:100%; }
    body { height: 100%; }
    table { height:100%; width:100%;}
    td { text-align:center; }
    </style>
     <table>
      <tr>
       <td>Wo stehe ich?</td>
      </tr>
     </table>
    ---------------------------------------------------------------------
    [img:http://www.w3.org/Icons/valid-html401.gif]
    [img:http://jigsaw.w3.org/css-validator/images/vcss.gif]

    Klappt mit Opera 5.12 & 6, IE6, Mozilla 0.9.5 (mit NN4.72 allerdings nicht).

    HTH

    Gruß,

    kerki

    1. Hallo !

      [img:http://www.w3.org/Icons/valid-html401.gif]
      [img:http://jigsaw.w3.org/css-validator/images/vcss.gif]

      Oh, wie schade. :´(

      <img src="http://www.w3.org/Icons/valid-html401.gif" border=0 alt="">
      <img src="http://jigsaw.w3.org/css-validator/images/vcss.gif" border=0 alt="">

      Aah! :-)

      Gruß,

      kerki

    2. Hi kerki,

      Versuch 'mal dieses:

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
           "http://www.w3.org/TR/html4/strict.dtd">
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <title>100% height</title>
      <style type="text/css">
      html { height:100%; }
      body { height: 100%; }
      table { height:100%; width:100%;}
      td { text-align:center; }
      </style>
      <table>
        <tr>
         <td>Wo stehe ich?</td>
        </tr>
      </table>

      Danke, das war's!!!

      Bye,
      Peter