Gernot Back: Tabelle aufklappen über display-Eigenschaft im IE

Beitrag lesen

Hallo Bertie,

Die Tabelle:

<table width="300" border="0" cellspacing="0" cellpadding="3" name="blubb" style="display:none;">

Der Radio Button:

<input type="radio" name="status" value="test" onClick="document.getElementsByName('blubb')[0].style.display = 'block';" />

... Wie Gunnar schon sagte; "block" ist keine passende Display-Eigenschaft für Tabellen, entzeihe die Display-Eigenschaft 'none' durch Zuweisung einer leeren Zeichenkette und stelle so den Default-Status für Tabellen wieder her, dann passt es auch auf alle Browser.

Im Firefox klappt wie immer alles bestens. Nur der IE will die Tabelle einfach nicht einblenden. Kann mir jemand einen Tipp geben woran das liegt?

Ja, der IE mag es auch nicht, wenn eine Tabelle, die selbst anfänglich auf display:none steht, nachträglich wieder eingeblendet werden soll. Es geht hingegen, wenn du die Tabelle erst aufgeklappt hast. Dann lässt sie sich im IE auch zu- und anschließend wieder aufklappen.

Du könntest die Tabelle also automatisch zuklappen, nachdem sie erst einmal gerendert wurde, entweder onload der Seite oder in einem Funktionsaufruf, der im Quellcode kurz nach der Tabelle steht. Dann kannst du sie später auch wieder auf- und zuklappen. Das hätte dann auch den Vorteil, dass Leute in deren Browser Javascript deaktiviert ist, die Inhalte auch sehen könnten.

Oder du weist das display:none nicht dem TABLE-Element, sondern z.B. einem umgebenden DIV-Element zu und klappst dieses durch Klick auf den Radiobutton auf. Dann kucken Leute ohne Javascript aber in die Röhre.

Mit den invaliden Attributen im TABLE-Element hat die Zickerei des IE zwar nichts zu tun aber schön finde ich sie auch nicht.

Gruß Gernot