das hat nichts mit xhtml zu tun, sondern mit dem fehlertoleranten quirks mode, in den Du die Browser ohne vollständigen DOCTYPE schickst.
Den Selektor
@charset "utf-8" html
gibt's nicht und folglich hat html keine definierte Höhe und die Nachfahrenelremente ebenfalls nicht.
vielen dank ingo... :)