tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
4329
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von CrushLog
    CrushLog CrushLog ist offline Mitglied Gold
    Registriert seit
    Aug 2003
    Ort
    Hamburg
    Beiträge
    118
    Hi,

    ich weiss nicht genau, ob ich hier im richtigen Forum bin. Ich habe ein Problem mit der CSS Darstellung display: block bei einer Tabelle.
    Ich möchte per Javascript eine Tabelle per Klick auf einen Button anzeigen lassen oder auch nicht. Soweit so gut, das Ganze funktioniert auch wunderbar, hier kurz der Code zum Verständnis:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    function ToggleDetails (id) {
      if (document.getElementById("DetailsC_" + id).style.display == 'none') {
        document.getElementById("DetailsC_" + id).style.display = "block";
        document.getElementById("DetailsI_" + id).src = "img/navi/collapse.gif";
        document.getElementById("DetailsI_" + id).alt = "Details einklappen";
     }
      else {
        document.getElementById("DetailsC_" + id).style.display = "none";
        document.getElementById("DetailsI_" + id).src = "img/navi/expand.gif";
        document.getElementById("DetailsI_" + id).alt = "Details aufklappen";
      }
    }

    Die Tabelle wird von Anfang an angezeigt, das funktioniert auch, aber sobald ich sie einklappe und wieder ausklappe wird ja als Style display: block geschrieben. Beim IE funktioniert das auch und sieht normal aus. Nur beim Firefox wird die Tabelle komplett verschoben und nicht auf die ganze 100% Breite gezogen.
    Ich hab das Problem soweit eingegrent, dass es nur bei display: block auftritt. Benutze ich display: table geht es beim Firefox wieder, aber beim IE geht das afklappen gar nicht mehr.
    Weiss da jemand Rat, wie ich das lösen kann?

    Danke im Vorraus!
     

  2. #2
    The Count The Count ist offline Grünschnabel
    Registriert seit
    Nov 2004
    Beiträge
    2
    Ein nützlicher Link hierzu scheint mir - trotz der englischen Sprache -
    http://www.mozilla.org/docs/web-deve...html#dom_manip
    zu sein.
    FAZIT: das Attribute style ist z.B. eine IE proprietäre Lösung für das DOM (Document Object Model) - die Seite beschäftigt sich mit einigen Aspekten moderner W3C konformen Umsetzungen desselben.
    Warnung : Soll die Seite auch noch mit alten Browsern funktionieren, wird einiges an Entscheidungslogik erforderlich!
     

  3. #3
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

    nach dem, was ich hier testen konnte, funktioniert das mit der Eigenschaft "block" nur im IE korrekt.
    Opera und Mozilla-Engines interpretieren "table" so, dass die Tabelle beim erneuten Aufklappen
    wieder richtig angezeigt wird.

    Du könntest das zum Beispiel mit einer Browserweiche lösen.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    IE = document.all && !window.opera;    // IEs
    DOM = document.getElementById && !IE;  // DOM-Browser
     
    function ToggleDetails (id) {
      if (document.getElementById("DetailsC_" + id).style.display == 'none') {
        [B]document.getElementById("DetailsC_" + id).style.display = (IE) ? "block" : "table";[/B]
        document.getElementById("DetailsI_" + id).src = "img/navi/collapse.gif";
        document.getElementById("DetailsI_" + id).alt = "Details einklappen";
     }
      else {
        document.getElementById("DetailsC_" + id).style.display = "none";
        document.getElementById("DetailsI_" + id).src = "img/navi/expand.gif";
        document.getElementById("DetailsI_" + id).alt = "Details aufklappen";
      }
    }
    Eine andere Möglichkeit wäre es, wenn Du Deine gesamte Tabelle in einen DIV-Container
    packen würdest. Diesem gibst Du die ID, die bisher die Tabelle hatte. Damit blendest Du
    die Tabelle über den Container ein bzw. aus.

    Ciao
    Quaese
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

Ähnliche Themen

  1. Wenn status = 1 aus style display:none display:block machen
    Von spikaner im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 16.01.11, 09:04
  2. DIV: display: block und none
    Von mschlegel im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 17.02.08, 14:26
  3. display block / display none ?
    Von nordi im Forum Javascript & Ajax
    Antworten: 0
    Letzter Beitrag: 09.01.08, 11:43
  4. problem in Firefox mit display block
    Von luci im Forum HTML & XHTML
    Antworten: 15
    Letzter Beitrag: 27.10.06, 13:07
  5. display block und none (Geht im Firefox aber im IE nicht);
    Von draig im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 29.04.06, 23:57