Hi,
Das Verstecken der Elemente ist zwar einerseits ein wichtiger Teil des Layouts (besonders wenn man davon ausgeht, dass dies der Normalfall ist), andererseits entscheidet das Script darüber, ob das Verstecken tatsächlich stattfindet.
Nach dieser Lesart wäre es genug getrennt, wenn Du den CSS-Code direkt ins (externe?) JS packst, und dort einfach mittels write() ausgibst - wobei das JS natürlich im HEAD stehen muß, und es sich um eine HTML-Seite handeln muß (XHTML beherrscht kkein write().
Bei meinen Tests hat nichts aufgeblitzt, was aber auch nur an meinen Testdokumenten liegen kann.
Jep. Wenn der OnLoad-Event feuert, ist das Dokument i.d.R. bereits sichtbar. Und wenn Grafiken enthalten sind, dann ist es oft auch schon lange vorher sichtbar.
Leider habe ich zu wenig Erfahrung und Hintergrundwissen, um mir eine andere Lösung als die mit window.onload auszudenken. Für Vorschläge wäre ich dankbar.
Um Elemente beeinflussen zu können, müssen diese Elemente ja bereits existieren (deswegen onLoad). Alternativ kann man das Script direkt hinter den BODY-Starttag packen (Klasse für Regel mit Nachfahrenselektor) oder direkt in/oder zumindest hinter die konkret auszublendenden Objekte (um sie selbst einer passenden Klasse zuzuweisen, bzw. sie z.B. direkt mit style auszublenden).
Oder eben, was ich vorschlug, man gibt das CSS bereits im HEAD mit JS selbst aus/legt es an. Da muß man nicht auf die Existenz der Elemente warten, sondern erledigt das vorher ...
BTW: Davon abgesehen: Ist hier ausblenden überhaupt richtig, oder wäre es nicht sinnvoller, die Elemente selbst zu löschen? JS kann man deaktivieren, aber CSS auch. Und wenn die Ellemente nur bei JS nicht sichtbar sein sollen, wäre es zumindest logisch, sie auch wirklich rauszuschmeißen (das geht aber wirklich erst nachdem die Elemente existieren - und sei es, daß man sie nur nicht sieht, und dann im OnLoad-Event wirklich entfernt ...).
Gruß, Cybaer
--
Man muß viel gelernt haben, um über das, was man nicht weiß, fragen zu können.
(Jean-Jacques Rousseau, Philosoph u. Schriftsteller)