Pour les div imbriqués, je pense voir d'où ça vient :
<div align="center">
<div class="PDDiv">
<div style="text-align:center;background:url(templates/default/images/page_bg.gif) center #7F7F7F repeat-y">
<div style="width:800px;
margin-right:auto;
margin-left:auto;
margin-left:-10px;
margin-top:0px;
padding:0px">
<div style="background:url(templates/default/images/header.gif) top #7F7F7F no-repeat;
height:76px;
margin:0;
padding:25px 25px 0 25px;
clear:both;
text-align:left">
<h1 style="padding:0;
margin:0;
font-weight:normal;
line-height:.7em;
font-size:2.1em;
letter-spacing:-.1em;
color:#ffffff;
font-family:helvetica">M@thstrass</h1>
</div>
<div style="margin:0;
text-align:left;
display:block;
height:95px;
background:url(templates/default/images/header_image3.jpg) center center transparent
repeat-y"></div>
</div>
</div>
</body>
À noter au passage que le </body> à la fin de cet extrait ne marque pas la fin de la page.
Passer des styles en-ligne via l'attribut CSS
style ne devrait être utilisé que ponctuellement, et pour des détails. Les déclarations de style devraient, dans le cadre d'une conception efficace, rejetées dans une feuille de style séparée de la page HTML elle-même.
Il y a plusieurs erreurs à corriger avant de s'attaquer aux (possibles) problèmes de rendu :
- virer le prologue XML qui non seulement ne sert à rien (le XTML 1.0 servi avec le type MIME "text/html" n'est pas du XML, mais bien du HTML), mais en plus fait passer IE Windows en mode Quircks, ce qui n'est pas une bonne idée ;
- corriger les différentes erreurs de syntaxe (utiliser un validateur de syntaxe HTML) ;
- virer les styles en-ligne pour les placer dans une feuille de style.
Une fois que ceci sera fait, on pourra se pencher sur les problèmes de rendu.