div overflow -> js-switch auf textarea -> schwarzer kasten

  • Ich habe ein kleines Problem und da ich in Sachen css nicht so der crack bin.

    Ich habe eine Übersicht in der ich mir Auftragsdaten anzeigen lasse.
    Für einen Beschreibungstext habe ich jetzt für den div-bereich die css-eigenschaft overflow auf 'auto' gesetzt und eine feste größe definiert.
    Hinter den angezeigten Daten liegt ein Formular um eben diese Daten zu bearbeiten. Per JS kann man jetzt auf Knopfdruck auf das Formular wechseln und wieder zurück.
    Das habe ich mir einfach gemacht und die Anzeige in einen div-bereich gelegt und das Formular hinterher in einen zweiten div-bereich. Das Formular steht default auf visibility:collapse, der div-bereich für die Anzeige auf visibility:visible.
    Über JS wird die visibility eben geswitcht.
    Seit ich jetzt aber in dem div-bereich zur Anzeige ein div-element auf overflow:auto gesetzt habe wird mir die Fläche für dieses div beim switch auf das Formular als schwarzer Kasten dargestellt. Die Textarea ist also überdeckt. Das ist nicht so schön.

    hier nur mal ganz grob der aufbau:

    Code
    function ShowForm(Form) {
        document.getElementById(Form).style.visibility="collapse";
        document.getElementById(Form+'_form').style.visibility="visible";
    }
    function ShowData(Data) {
        document.getElementById(Data).style.visibility="visible";
        document.getElementById(Data+'_form').style.visibility="collapse";
    }

    Hat irgendjemand einen Ansatz wie ich es hinkriege, dass ich das overflow-Attribut beibehalte, aber trotzdem beim Formular den schwarzen Kasten für das entsprechende div wegbekomme?
    Ich habe schon probiert für das entsprechende div in der javascript-funktion den wert für overflow zu ändern, bringt aber auch nix. Kann ich irgendwie per js das overflow attribut komplett entfernen statt nur den wert zu ändern, und dann beim zurückswitchen halt wieder einfügen?

    Für irgendwelche Ansätze oder Denkanstöße wäre ich dankbar.

    Hoffe mal das ist hier richtig, es geht ja im Prinzip schon um css-eigenschaften, nicht um js.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

    Einmal editiert, zuletzt von SinnlosS (2. Juni 2009 um 13:32)

  • Ist der Rat jetzt speziell auf mein Problem bezogen, oder hat es generell Vorteile display statt visibility zu verwenden?

    Mein Problem habe ich gerade eben erstmal gelöst, in dem ich eine id='auftragsdaten_overflow' für den entsprechenden div vergeben habe, und die javascript-funktionen um folgendermaßen erweitert habe:

    Code
    document.getElementById(Form+'_overflow').style.overflow="";
    
    
    bzw.
    
    
    document.getElementById(Form+'_overflow').style.overflow="auto";

    removeAttribute("overflow",auto) auf den div-bereich hatte nicht funktioniert.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Naja Vorteile nicht unbedingt, kommt halt drauf an was du brauchst. Ich verwende aber immer display und hatte meines Wissens noch nie Probleme damit.

    Aber wenn du das Problem gelöst ist - umso besser.