Bug im Internet Explorer
Michl
- css
Hallo, folgender Bug im IE in aktuellen Versionen (u.a. 10):
Ein via CSS-Style "box-shadow" angehängter Schatten an einer Box verharrt in seiner ursprünglichen Größe, wenn sich die Höhe derselben Box (typischerweise per JavaScript) ändert.
Habe dazu u.a. folgende Beiträge gefunden, aber bisher keine Lösung:
http://stackoverflow.com/questions/12715864/box-shadow-doesnt-re-render-properly-when-javascript-changes-the-containers-siz
http://stackoverflow.com/questions/13983648/ie9-boxshadow-bug
Auch der Ansatz mit dem jQuery-"mutate"-Plugin und dem im Callback aktualisierten z-Index (s. Antwort auf ersten Beitrag oben in der Liste) löst das Problem nicht - der Schatten bleibt im Internet Explorer in seiner ursprünglichen Größe.
Kennt jemand einen funktionierenden Code-Fix für diesen IE-Bug?
Gruß Michl
Schatten Internet Explorer Bug Höhe Container geändert Änderung box-shadow div height changed box shadow IE only adapt fixed adapted change
Kennt jemand einen funktionierenden Code-Fix für diesen IE-Bug?
Die Größe ändert sich per Js?
Was dann immer gehen sollte, wäre die Box (also den kompletten div oder was auch immer Du da hast) per Js komplett aus dem DOM zu nehmen und dann komplett neu reinzuhängen. Das ist zwar die Holzhammermethode, wird imho aber das komplette Neurendern der "Box" erzwingen.
Jörg Reinholz
Om nah hoo pez nyeetz, Jörg Reinholz!
Was dann immer gehen sollte, wäre die Box (also den kompletten div oder was auch immer Du da hast) per Js komplett aus dem DOM zu nehmen und dann komplett neu reinzuhängen. Das ist zwar die Holzhammermethode, wird imho aber das komplette Neurendern der "Box" erzwingen.
oder eine Kopie ins DOM hängen und das Original ausblenden. So kann man wenn es denn nötig ist, die Sichtbarkeit der beiden Elemente togglen.
Matthias
Om nah hoo pez nyeetz, Jörg Reinholz!
U aleikum assalaam!
oder eine Kopie ins DOM hängen und das Original ausblenden. So kann man wenn es denn nötig ist, die Sichtbarkeit der beiden Elemente togglen.
Klingt nach einer guten Idee.
Jörg Reinholz
Hallo zusammen,
oder eine Kopie ins DOM hängen und das Original ausblenden. So kann man wenn es denn nötig ist, die Sichtbarkeit der beiden Elemente togglen.
Klingt nach einer guten Idee.
Der Schatten bleibt auch dann noch an Ort und Stelle kleben, wenn das Container-Element, an das der Schatten rangehängt wurde, aus dem DOM-Baum entfernt wird... :)
Hängt man also eine Kopie vom Element in den DOM-Baum rein, ist die so hoch wie das Original nach der Höhen-Änderung und der Schatten bleibt somit sichtbar, sofern der Container in der Höhe bzw. Breite verkleinert wurde, mal abgesehen vom ganzen Event-Binding-Aufwand etc., der an der Stelle bei komplexeren Komponenten fällig würde.
Der Schatten bleibt auch dann noch an Ort und Stelle kleben, wenn das Container-Element, an das der Schatten rangehängt wurde, aus dem DOM-Baum entfernt wird... :)
Wow.
Eine Google-Suchen nach IE Bug Shadow Resize Element führte mich zu folgenden Lösungsangeboten:
http://stackoverflow.com/questions/8675773/shadow-artifacts-during-animation-in-ie9
Ansonsten bliebe noch die Möglichkeit den Schatten zu entfernen, das Element zu ändern und dann den Schatten wieder ranzuhängen. Ich habe gerade keinen IE hier und Du hast keine Angaben gemacht, was Du bereits alles versucht hast...
mal abgesehen vom ganzen Event-Binding-Aufwand etc., der an der Stelle bei komplexeren Komponenten fällig würde.
Für komplexe Bugs wird es eben keine einfachen Lösungen geben.