Christoph: IE stellt Tabelle falsch dar - XHTML.

Hallo,

ich habe ein Problem mit Tabellen im IE in XHTML-Strict:Der Depp stellt die nicht richtig dar.

Alles was ich möchte ist in XHTML einfach nur eine Tabelle zu erstellen, die den gesamten Bildschirm ausfüllt (funktioniert),
zwei übereinander liegende Zellen hat (funktioniert auch)
und die erste Zelle eine feste Höhe von, sagen wir mal 88 PX, hat
und die zweite dann den Rest einnimmt
(das funktioniert in Opera und NN, nur der IE kriegt das nicht auf die Reihe).
Das schöne ist: Wird die XHTML-Definition entfernt, schafft der es auch. Ist IE einfach nicht XHTML-fähig?
Ach ja, die Tabelle ist natürlich über CSS formatiert.
Mein Beispiel:

------------------------------------------
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<html>
<head>
<style type='text/CSS'>

html {
height:100%; //Fuer NN.
}

body {
margin:0PX;
padding:0PX;
height:100%; //Fuer IE.
}

table {
width:100%;
height:100%;
}

.Static {
height:88PX; //Hier ist das Problem: Die Hoehe steht auf 88 Pixel!
}

</style>
</head>
<body>
<table border='2'>
 <tr>
 <td class='Static'>
 Erste Zelle
 </td>
 <tr>
 <td>
 Zweite Zelle
 </td>
 </tr>
</table>
</body>
</html>
------------------------------------

Würde mich echt freuen, wenn jemand eine Lösung weiss!

Bye,
Christoph.

  1. Hi

    <table border='2'>
    <tr>
    <td class='Static'>
    Erste Zelle
    </td>
    <tr>

    ^^^^^^^ Es freut mich wirklich zu sehen, dass der IE endlich mal invaliden Code auch so darstellt: Als Müll <:)

    <td>
    Zweite Zelle
    </td>
    </tr>
    </table>
    Würde mich echt freuen, wenn jemand eine Lösung weiss!

    Erst mal bitte validieren, das ist bei XHTML noch viel wichtiger als bei HTML...

    Fabian

  2. Hallo,

    ich habe ein Problem mit Tabellen im IE in XHTML-Strict:Der Depp stellt die nicht richtig dar.

    Wenn deine seite wirklich den Code hat, kann es gar nicht gehen:
    /* das ist ein kommentar im css */
    <tr> nicht geschlossen (oder eimla zu oft geöffnet.
    Aber so sollte es auch mit dem IE gehen:

    Grüße
    Thomas
    <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
    <html>
    <head>
    <style type='text/CSS'>

    html {
    height:100%; /*Fuer NN.*/
    }

    body {
    margin:0px;
    padding:0px;
    height:100%; /*Fuer IE.*/
    }

    table {
    width:100%;
    height:100%;
    }

    td { height:100%; }
    .Static {
    height:88px; /*Hier ist das Problem: Die Hoehe steht auf 88 Pixel!*/
    }

    </style>
    </head>
    <body>
    <table border='2'>
     <tr>
      <td class='Static'>Erste Zelle</td>
     </tr>
     <tr>
      <td>Zweite Zelle </td>
     </tr>
    </table>
    </body>
    </html>

  3. Hallo, Christoph,

    Eine Anmerkung am Rande:

    Das schöne ist: Wird die XHTML-Definition entfernt, schafft der es auch. Ist IE einfach nicht XHTML-fähig?

    Das hat nichts mit XHTML-Unterstützung zu tun. Der MSIE kann zwar tatsächlich kein XHTML als application/xhtml+xml, aber da du das Dokument vermutlich als text/html auslieferst, greift hier der sogenannte »DOCTYPE switch«. Bei einer fehlenden Dokumenttypdeklaration (das meintest du mit »XHTML-Definition«) wird das Dokument anders interpretiert und dargestellt. In Archiv http://selfsuche.teamone.de/ findest du unter dem genannten Stichwort viel, ebenso beispielsweise auf http://gutfeldt.ch/matthias/articles/doctypeswitch.html, http://www.hut.fi/~hsivonen/doctype.html und http://msdn.microsoft.com/library/en-us/dnie60/html/cssenhancements.asp.

    Mathias

  4. Hi,
    erst einmal vielen Dank euch allen,
    dass ihr so schnell auf meine Frage
    geantwortet habt. Das gibt's auch nur
    in diesem Forum ;-) !
    @Molily:
    Danke für die umfangreiche Linksammlung,
    werde erst einmal eine Weile brauchen,
    bis ich das durchgearbeitet habe. Sicher hattest Du
    Recht, ich hätte zuerst im Forum suchen können, das
    habe ich zwar auch gemacht, aber wohl die falschen
    Suchbegriffe verwendet. :-(
    Allerdings bin ich mir nicht sicher, ob ich dieses
    <Doctypeswitch> machen sollte - was ist denn, wenn ein
    zukünftiger IE das ignoriert, einfach immer in Standard
    arbeitet? Dann habe ich das selbe Problem wieder, und muss
    vermutlich alle Seiten umschreiben. *Schreck!*
    @Thomas:
    Die Lösung die Du mir geliefert hast, entspricht noch am
    ehesten meinen Vorstellungen! Dummerweise wird die zweite
    Tabellenzelle so hoch wie die gesamte Fenster dargestellt,
    und die Erste einfach drangehängt, so muss man immer scrollen,
    egal wie hoch das Fenster ist. Wenn ich nichts anderes finde,
    nehme ich aber wohl diese Lösung. Außerdem weiß ich jetzt,
    wie man richtig in CSS kommentiert! :-)
    (Geht aber leider auch nicht mit den richtigen Kommentaren.......)
    @Fabian:
    Oh, wie peinlich, da braucht man sich wirklich nicht zu wundern!
    Leider war das nicht die Fehlerursache. Natürlich validiere
    ich meine Websites, bevor sie ins Netz gestellt werden, da muss
    ich Dir Recht geben - schließlich sollen sie ja auch überall,
    und auch möglichst gleich angezeigt werden können (was ich dem
    IE aber nicht beibringen kann! *verzweifel*). Das war aber
    jetzt nur eine Test-Seite, da war ich zu faul, noch zu validieren.

    Ich finde dieses Doctypeswitch ziemlich interessant,
    aber ich weiß nicht, ob das wirklich zukunftsicher
    ist. Gibt es denn keinen CSS-Befehl für:
    <Restlichen Platz einnehmen> - So etwa wie
    height='*'? (Ich meine jetzt nicht height:auto
     - das bringt gar nix!)

    Bye,
    Christoph.

    1. Hallo,

      Allerdings bin ich mir nicht sicher, ob ich dieses <Doctypeswitch> machen sollte - was ist denn, wenn ein zukünftiger IE das ignoriert, einfach immer in Standard arbeitet? Dann habe ich das selbe Problem wieder, und muss vermutlich alle Seiten umschreiben. *Schreck!*

      [...]

      Ich finde dieses Doctypeswitch ziemlich interessant, aber ich weiß nicht, ob das wirklich zukunftsicher ist.

      Schon klar - ich wollte dir nur die Ursache für deine Beobachtung liefern.
      Im Allgemeinen ist empfehlenswert, eine vollständige Dokumenttypdeklaration anzugeben und damit den standardkonformen Rendermodus auszulösen, leider spielt MSIE in diesem Modus oft verrückt, wie in diesem Fall. Es ist tatsächlich nicht zukunftssicher, deshalb absichtlich die DOCTYPE-Deklaration wegzulassen, vor allem kommen noch dutzende weitere Probleme auf dich zu, falls du MSIE 6 (und andere Browser) absichtlich in den Quirks-Mode versetzt (Stichwort »box model bug«).

      Dummerweise wird die zweite Tabellenzelle so hoch wie die gesamte Fenster dargestellt, und die Erste einfach drangehängt, so muss man immer scrollen, egal wie hoch das Fenster ist. Wenn ich nichts anderes finde, nehme ich aber wohl diese Lösung.

      Es liegt natürlich an height:100% für die zweite Zelle, aber ohne eine feste Höhe der zweiten Zelle wird die Höhe der ersten Zelle ignoriert - dazu finde ich auch  keine Lösung und tippe auf einen Bug. Du könntest höchstens mit Javascript nachträglich die Höhe die Zelle festlegen (Tabellenhöhe http://selfhtml.teamone.de/javascript/objekte/all.htm#offset_height minus die Ränder minus 88 Pixel, beispielsweise über http://selfhtml.teamone.de/javascript/objekte/document.htm#get_element_by_id und http://selfhtml.teamone.de/javascript/objekte/style.htm und height), aber das wäre natürlich unzuverlässig und ebenfalls nicht nachhaltig.

      Grüße,
      Mathias

      1. Hallo Mathias,

        thanks für die Links auf die Javascript-Alternative.
        »»http://selfhtml.teamone.de/javascript/objekte/style.htm und height), aber das wäre natürlich unzuverlässig und ebenfalls nicht nachhaltig.
        Genau das ist der Nachteil. Ausserdem ist das auch immer abschaltbar. Ich habe aber herausgefunden, dass wenn man die zweite Zelle nicht auf 100%, sondern so etwa auf 70% stellt, der Unterschied nicht ganz so krass ist. Natürlich ist das Problem dadurch nicht gelöst, aber so halbwegs hingedrückt ist besser als gar nicht. Als Surfer finde ich den IE ja gar nicht so schlecht (natürlich habe ich einen Virenscanner und eine Firewall ;) ), aber als Webdesinger bringt der mich zur Verzweiflung. Wenn der NN was nicht richtig darstellt ist man auch selber schuld - der ist wenigstens logisch. Wenn man bedenkt, dass ich einfach nur eine   s i m p e l s t e   T a b e l l e   schreiben will, dann ist der IE einfach nur schlecht (die anderen können es ja!).

        Grüße,
        Christoph.

        -------------------------
        P.S.: @all: Gibt es einen CSS-Befehl so etwa wie height:100%-88PX; ?
        -------------------------