Martin Maaß: script-Element beeinflusst Layout unter IE 6

Guten Tag,

seit ein paar Tagen treibt mich ein Phänomen in den Wahnsinn, das ich mir nicht ganz erklären kann. Vielleicht kann mir hier jemand den entscheidenden Tipp geben.

Wir nutzen eine Kombination aus jQuery und der ASP.Net Ajax Library zur clientseitigen Maskierung und Validierung von Eingaben und haben die dafür notwendigen script-Elemente am Ende der Seite eingebunden. Leider verschiebt sich das Layout bei dieser Konfiguration im IE 6 beim ersten Klick in ein maskiertes input-Element. Diese Verschiebung tritt nicht auf, wenn die script-Elemente am Anfang der Seite notiert werden.

Durch die Verschiebung der script-Elemente konnte ich das Problem zwar lösen, ich würde jedoch furchtbar gerne die eigentliche Ursache verstehen. Hoffe mir kann jemand helfen.

mfg Martin

  1. Das Problem ist, dass der IE Script-Elemente als unsichtbare/versteckte Elemente versteht und diese häufig seine Layout-Engine durcheinander bringt (was unter anderem auch den duplicate Characters Bug auslösen kann - aber eben nicht muss, was diesen Fehler mitunter so nervig macht).

    Die einfachste Lösung besteht darin, die Script-Element im body per CSS so zu formatieren, dass sie sichtbar sind, aber keinen Einfluss auf andere Elemente haben:

    * html script {  
        display: block;  
        height: 0;  
        left: -3000px;  
        overflow: hidden;  
        position: absolute;  
        width: 0;  
    }
    

    Gruß, LX

    --
    RFC 1925, Satz 6a: Es ist immer möglich, einen weiteren Umweg einzufügen.
    RFC 1925, Satz 11a: Siehe Regel 6a