@@Felix Riesterer:
nuqneH
Du hast dasselbe Problem wie Das_Land.
Nein.
zumindest nicht nur.
Nein, überhaupt nicht. Der Ausführungszeitpunkt von document.documentElement.className += " js";
ist für das Wirken einer Regel .js #foo { bar: baz }
egal: Sobald das Script ausgeführt wurde, grift der Selektor.
(Um Flackern der Anzeige zu vermeiden, sollte das Script natürlich ASAP ausgeführt werden, bevor der Seiteninhalt erst anders gerendert wird.)
Und das Script wird ausgeführt. Selbst bei kaputtem Markup wie
<script>[code lang=javascript]document.documentElement.className += " js";
</script>
<html><style>.js body {background: green}
</style>[/code]
Da beim 'html
'-Element Start- und End-Tag optional sind, wird mit dem <script>
-Tag implizit vorher ein 'html
'-Element geöffnet. Das zweite 'html
'-Element (das <html>
-Tag) ist natürlich ein Fehler, der tut aber nichts zur Sache. document.documentElement
bezieht sich auf das Wurzelelement: das implizit geöffnete äußere 'html
'-Element. Und dieses ist zur Ausführungszeit des Scriptes auf jeden Fall vorhanden.
Qapla'
Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
(Mark Twain)