@@Malcolm Beck´s:
nuqneH
Im Gunde ist es doch dem von dir verlinkten Bsp. sehr ähnlich, nur dass hier dem HTML-Element direkt ein Style untergeschoben wird.
Die Vermischung von JavaScript und CSS ist die eine Sache. Das ist nicht gut, aber darum ging es hier gar nicht.
Bei der Variante von Patrick/Cybaer wird vor Beginn des Ladens des Seiteninhalts gesagt, diesen nicht anzuzeigen:
dc.documentElement.style.visibility = "hidden";
Erst nachdem alle Inhalte (incl. Bilder etc) geladen sind, wird der Inhalt dargestellt:
window.onload = function() {
dc.documentElement.style.visibility = "visible";
dc.getElementById('visibleOnlyWith').style.visibility = "visible";
}
Warum soll der Nutzer so lange auf die Anzeige des Inhalts warten? Er kann doch schon Textinhalt lesen, während noch Bilder geladen werden.
Die eventuell mehrere Sekunden lang erscheinende leere Seite gibt dem Nutzer keinen Hinweis, dass überhaupt was passiert. Er wird sie womöglich verlassen, bevor der Inhalt dargestellt wird.
Also Textinhalt so früh wie möglich darstellen, nicht erst 'onload'!
Das passiert bei der Variante aus dem Webkrauts-Adventskalender: Vor dem Laden des Inhalts erhält das 'html'-Element per JavaScript eine Klasse. Wenn der Textinhalt geladen wird, weiß der Browser bereits durch das Stylesheet, ob er ihn einblenden soll oder nicht.
Qapla'
Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)