CarstenP: DOCTYPE-Switch beim MSIE umgehen

Beitrag lesen

Hallo Stefan,

Schwierig wird es im MSIE 6.0 SP1, der zeigt mir mit DOCTYPE die
mittlere Zelle mit der Höhe der Seite und nicht der restlichen
Höhe innerhalb der Tabelle an. Wenn ich den DOCTYPE rausnehme,
dann zeigt er es korrekt an.

Ich habe zwar keine Lösung für Dein Problem (die hast Du ja mittlerweile selbst gefunden), aber ich versuch's mal mit einer Erklärung der unterschiedlichen Verhaltensweisen, so wie ich sie verstehe.

Da sich mit Deiner DTD ja alle von Dir genannten Browser im standards-compliant Mode befinden, scheint irgendjemand die CSS-Recommendation mißverstanden zu haben. Also habe ich mich mal auf die Suche begeben, ob es eine Stelle beim W3C gibt, die Dein Problem regelt. Ich bin zu dem Schluß gekommen, daß es nichts mißzuverstehen gibt, weil es einfach nicht geregelt ist:

http://www.w3.org/TR/REC-CSS2/tables.html#height-layout

"CSS2 does not specify rendering when the specified table height differs from the content height"

"CSS2 does not define what percentage values of 'height' refer to when specified for table cells."

Wie der IE nun das Nichtvorhandensein einer Regelung umsetzt, kann man in meinen Augen nur als "bescheuert" bezeichnen, zumal er es im Quirks-Mode ja den anderen Browsern entsprechend umsetzt.

Absolut nicht mehr nachvollziehbar wird es, wenn man für Deine mittlere Tabellenzelle die Prozentangabe wegläßt. Dann kommt für diese Zelle ja der Default-Wert "auto" zu tragen.
Mozilla und Opera verhalten sich so, wie man es wohl auch mit gesundem Menschenverstand interpretieren würde: 100px oben, 100px unten, der Rest in der Mitte wird so hoch, daß die 100% der Tabellen-Höhe ausgefüllt werden.
Der IE dehnt nun die Zellen oben und unten, so daß sie größer als die festgelegten 100px werden, die mittlere Zelle wird auch etwas über die Mindestgröße gedehnt. Der IE verstößt damit zwar gegen keine Spezifikation (s.o.: "does not specify"), aber logisch ist es nicht...

Viele Grüße
Carsten