Ronny Riedel: nichtanzeige von HTML-Elementen

Hallo,

gegeben sei folgender HTML-Code

  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
"http://www.w3.org/TR/html4/strict.dtd">  
<html>  
   <head>  
      <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">  
      <meta http-equiv="expires" content="0">  
      <title>Display-Test</title>  
      <style type="text/css">  
         #idCntDv {  
            border: 0px solid black;  
            margin: 0px;  
            padding: 0px;  
            position: relative;  
         }  
         #idCntDv div.divRight {  
            float: right;  
            font-size: 0.9em;  
            margin-top: 1px;  
            margin-bottom: 3px;  
         }  
         table {  
            clear:both;  
            border-collapse:collapse;  
         }  
         td {  
            border: 1px solid black;  
         }  
      </style>  
   </head>  
   <body>  
      <div id="idCntDv">  
         <div class="divRight">Liste anzeigen</div>  
         <table>  
            <colgroup>  
               <col width="35%">  
               <col width="65%">  
            </colgroup>  
            <tr>  
               <td>Objekt</td>  
               <td>Queue</td>  
            </tr>  
            <tr>  
               <td>Typ der Queue</td>  
               <td>normale Queue</td>  
            </tr>  
         </table>  
      </div>  
   </body>  
</html>  

Wenn ich mir diesem im FireFox anschaue, ist alles ok. Im IE (getestet mit Version 6 und 7) wird bei mir die Tabelle nicht angezeigt.

Frage: Warum?

Wenn ich die Tabelle in ein <P>-Element einbette und für dieses <P>-Element dann "clear:both" definiere, sieht alles ok aus. Das hab ich erstmal als Workaround auch gemacht. Trotzdem würde ich gerne verstehen, warum der IE den laut W3C-Validator validen HTML- und CSS-Code nicht korrekt darstellt.

Thx & Gruß
  RR

  1. hallo,

    table {
                clear:both;

    Ändere das zu "clear: right;"

    Wenn ich die Tabelle in ein <P>-Element einbette

    ...erzeugst du invalides HTML.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Hallo,

      danke für Deine Antwort. Hier "clear:right" verwenden geht nicht, da neben dem rechten DIV teilweise auch ein linkes DIV erscheinen kann (dieses dann mit "float:left". Und die Tabelle soll unter den beiden DIV-Elementen liegen.

      Mir schon klar das ich mit dem P-Element valides HTML erzeuge, aber das P-Element wäre an dieser Stelle so gesehen überflüssig und würde nur dazu dienen, das die Anzeige meinen wünschen entspricht. So gesehen kann ich auch wieder auf dem "Ursprung" zurückgehen und alles per großer TABLE machen :-)

      Gruß
        RR

      1. hallo,

        Hier "clear:right" verwenden geht nicht, da neben dem rechten DIV teilweise auch ein linkes DIV erscheinen kann (dieses dann mit "float:left". Und die Tabelle soll unter den beiden DIV-Elementen liegen.

        Dann stecke doch diese beiden DIVs nochmal in ein eigenes, in dem sie nebeneinander liegen. Du könntest damit sogar dem Problem mit dem "Floating" entkommen.

        Mir schon klar das ich mit dem P-Element valides HTML erzeuge

        invalides HTML ;-)

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
      2. Hi,

        danke für Deine Antwort. Hier "clear:right" verwenden geht nicht

        ... und hätte auch überhaupt keine andere Auswirkung.

        Danke Dir für den neuen IE7-Bug in meiner Liste. ;-)

        freundliche Grüße
        Ingo

        1. hallo Ingo,

          Hier "clear:right" verwenden geht nicht
          ... und hätte auch überhaupt keine andere Auswirkung.

          Doch, im IE6 - IE7 habe ich nicht probiert.

          Danke Dir für den neuen IE7-Bug in meiner Liste. ;-)

          Interessant. Aber warum soll der was "vergessen", was im IE6 funktioniert(e)?

          Grüße aus Berlin

          Christoph S.

          --
          Visitenkarte
          ss:| zu:) ls:& fo:) va:) sh:| rl:|
          1. Hi,

            Hier "clear:right" verwenden geht nicht
            ... und hätte auch überhaupt keine andere Auswirkung.

            Doch, im IE6 - IE7 habe ich nicht probiert.

            ich auch - allerdings im IE6 nur in einer Standalone-Version. Ich wüsste aber nicht, welchen Unterschied das machen sollte. Aber wie zeigt Dein IE6 mein Beispiel an? Hier ist nur clear:right gesetzt.

            Interessant. Aber warum soll der was "vergessen", was im IE6 funktioniert(e)?

            Keine Ahnung. Die haben ja ein paar Bugs gefixed - und damit auch ein paar neue geschaffen.

            freundliche Grüße
            Ingo

            1. hallo Ingo,

              wie zeigt Dein IE6 mein Beispiel an?

              So wie du es beschrieben hast: "Der IE 6 zeigt hier zumindest das gefloatete Element und den Tabellenrahmen noch an" - in deinem Beispiel ist die Tabelle selber ja auch "leer". Wenn sie Inhalte bekommt (wie im OP), werden die auch angezeigt. Daher hielt ich meinen Hinweis zunächst für ausreichend, ich habs ja ausprobiert.

              Grüße aus Berlin

              Christoph S.

              --
              Visitenkarte
              ss:| zu:) ls:& fo:) va:) sh:| rl:|
              1. Hi,

                in deinem Beispiel ist die Tabelle selber ja auch "leer". Wenn sie Inhalte bekommt (wie im OP), werden die auch angezeigt. Daher hielt ich meinen Hinweis zunächst für ausreichend, ich habs ja ausprobiert.

                ich weiss ja nicht, wie Du auf die Idee kommst, meine Beispieltabelle sei leer - noch wie Du den Code des OP mit anderem Ergebnis testen konntest. Wenn ich in meinem Beispiel den Code des OP einsetze und statt einer Zeile und einer Spalte zwei Zeilen und zwei Spalten habe, ändert sich nichts an der Darstellung in beidem IEs.

                freundliche Grüße
                Ingo

                1. hallo Ingo,

                  ich weiss ja nicht, wie Du auf die Idee kommst, meine Beispieltabelle sei leer

                  Du hast in https://forum.selfhtml.org/?t=168891&m=1103165 ohne konkrete Angabe einer Quelle von "deinem Beispiel" gesprochen. Also nahm ich an, daß du damit dein Beispiel meinst. Und in meinen Augen ist
                     <table><tr><td>TABLE { clear:right }</td></tr></table>
                  nun einmal "leer".

                  • noch wie Du den Code des OP mit anderem Ergebnis testen konntest.

                  Ich habe ganz einfach da, wo er "clear:both;" angegeben hat, "clear: right;" eingesetzt und ansonst sein HTML/CSS vollständig und unverändert in eine "Testdatei" übernommen. Was auch aus meiner Antwort hätte ersichtlich sein können.

                  Wenn ich in meinem Beispiel den Code des OP einsetze und statt einer Zeile und einer Spalte zwei Zeilen und zwei Spalten habe, ändert sich nichts an der Darstellung in beidem IEs.

                  Wie gesagt, habe ich in der virtuellen Windows-Maschine, die ich benutzt habe (und derzeit erneut benutze) nur IE6. Mit IE7 habe ich keinen Test angestellt.

                  Grüße aus Berlin

                  Christoph S.

                  --
                  Visitenkarte
                  ss:| zu:) ls:& fo:) va:) sh:| rl:|
                  1. Hi,

                    Und in meinen Augen ist
                       <table><tr><td>TABLE { clear:right }</td></tr></table>
                    nun einmal "leer".

                    Du brauchst eine neue Brille!?
                    Die Tabelle hat eine Zeile mit einer Spalte, die nun wirklich nicht leer ist.

                    freundliche Grüße
                    Ingo

  2. Trotzdem würde ich gerne verstehen, warum der IE den laut W3C-Validator validen HTML- und CSS-Code nicht korrekt darstellt.

    1. internet explorer ist etwas eigen
    2. valider html und css code muss nicht zwangsläufig "korrekt" = deinen wünschen entsprechend dargestellt werden, viele in sgml valide konstrukte werden auch von anderen browsern als dem ie falsch interpretiert (das betrifft besonders kurzschreibweisen)
  3. Hi,

    Wenn ich die Tabelle in ein <P>-Element einbette und für dieses <P>-Element dann "clear:both" definiere, sieht alles ok aus.

    Das kannste auch mit einem Div um die Tabelle haben, ohne den Code invalide zu machen, du Nasenbaer.

    MfG ChrisB

    1. du Nasenbaer.

      *SCHOCK*

      Nasenbaeren sind echt cool und niedlich! Warum soviel Lob?

      1. hallo,

        Nasenbaeren sind echt cool und niedlich!

        Nasenbären sehen zwar "cool und niedlich" aus, sind aber echte Raubtiere. Sie würden dich zwar niemals in die Nase beißen, aber der eine oder andere Finger könnte bei unbedachten Berührungsversuchen schon abgetrennt und verspeist werden. Insofern sind Nasenbären ähnlich strukturiert wie eine falsch konzipierte Webseite - ohne Finger bist du halt beispielsweise als Klavier- oder Flötenspieler nicht mehr valide. Und bei der Bedienung deiner Tastatur auf das "Einfinger-Suchsystem" angewiesen.

        Und nun erstelle du mal mit reduzierter Fingerzahl eine valide Webseite!

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
        1. Hi!

          Nasenbären sehen zwar "cool und niedlich" aus, sind aber echte Raubtiere. Sie würden dich zwar niemals in die Nase beißen, aber der eine oder andere Finger könnte bei unbedachten Berührungsversuchen schon abgetrennt und verspeist werden.

          Ich war schon mit ner ganzen hungrigen Meute von den kleinen Biestern in einem Käfig und hab sie gefüttert. Kleine spitze Zähne haben sie, sind aber eigentlich nicht viel anders, als Katzen. Nur ne Ecke schmutziger. Nach ner (Haus)Katzenfütterung musste ich noch nie meine Klamotten in die Wäsche geben.

          Niedlich sind sie trotzdem.