Akela: display-Eigenschaft und ie

Moin,

der ie nervt mal wieder. Im Firefox läuft es ohne Probleme.

Ich möchte per Javascript eine Tabellenzelle ein- bzw. ausblenden. Zum Ausblenden verwende ich

document.getElementById( 'TD_Global' ).style.display = 'none';

Das funktioniert auch gut in beiden Browsern. Wenn ich jedoch mit folgender Anweisung

document.getElementById( 'TD_Global' ).style.display = 'table-cell';

die Zelle sichtbar setzen will, motzt der ie "Die display-Eigenschaft wurde nicht gefunden". Komischerweise macht er das auch, wenn die Zelle sichtbar ist und ich die Eigenschaft display:table-cell setzten will.
Umso merkwürdiger ist jedoch, das ein display:none ohne Fehler funktioniert.

Das ist für mich alles etwas unlogisch. Würde mich über Hinweise zur Lösung des Problems freuen.

ciao Akela

  1. Hello out there!

    document.getElementById( 'TD_Global' ).style.display = 'table-cell';
    […]
    Das ist für mich alles etwas unlogisch. Würde mich über Hinweise zur Lösung des Problems freuen.

    http://forum.de.selfhtml.org/archiv/2007/9/t158722/#m1032147

    See ya up the road,
    Gunnar

    --
    „Und [dieses Forum] soll […] auch ein Fachforum bleiben und kein Psychologieforum werden.“ (Kirsten Evers)
    1. Hallo Gunnar,

      Danke, das hat mich schonmal weiter gebracht. Aber so unter uns: Sauber ist das sicher nicht.
      Es ist mir auch gänzlich unbegreiflich, warum das im ie mal wieder nicht geht.
      Das Problem tritt auch nur auf, wenn man mit Javascript auf display zugreift. Wenn ich die Tabelle per HTML erzeuge kann ich die Eigenschaft setzen, ohne auch nur ein Murren des ie zu ernten. Daher wäre ich auch nie darauf gekommen, daß der ie 'display:table-cell' nicht versteht.

      ciao Akela

      1. Hi,

        Du kannst meines Wissen mit "style.display=''" einfach den default-Wert wiederherstellen.

        Grüße Basti

      2. Hi Akela,
        das Problem tritt auf, weil der IE (bis inkl. 7) diesen display type einfach nicht kennt. Deshalb tritt das Problem bei hard-codiertem xhtml und css auch nicht auf. Der IE ignoriert die Angabe und zeigt, was da steht: eine td (wenn du das aber mit einem div oder anderen block-level Element machst... Sollte man aber sowieso nicht tun)

        Gunnars Lösung ist übrigens nicht so schlecht solange du das über JS machst. Wenn du hier display:; verteilst, müsste der type in deiner css wieder gültig werden (also keiner also td). display:; in der css führt aber zu einem Einlesefehler und ist nicht valide.

        Gruß
        Antipitch

        1. Hi,

          ich bedanke mich für Eure Hilfe. In der SelfHTML-Hilfe habe ich jetzt in der Fußnote gelesen, daß die Eigenschaft display den Browsern bekannt ist. display:none können alle, jedoch werden die display-Eigenschaften für Tabellen vom ie bis einschliesslich v7 nicht unterstützt. Ich frage mich, was sich MS bei diesem halbfertigen Browser gedacht hat :-(

          ciao Akela

          1. Grütze .. äh ... Grüße!

            display:none können alle, jedoch werden die display-Eigenschaften für Tabellen vom ie bis einschliesslich v7 nicht unterstützt.

            Eine Übersicht der CSS-Unterstützung findet sich hier Browserkompatibilität

            Ich frage mich, was sich MS bei diesem halbfertigen Browser gedacht hat :-(

            Ich glaube, _das_ fragt sich so ziemlich jeder hier :(


            Kai

            --
            Der vertuschte Gefahrstoff: Dihydrogenmonoxid
            ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|