Bon alors allons-y dans l'ordre. D'abord, il faut finir d'épurer le code.
Première étape : supprimer tout ce qui est mise en forme du document HTML et l'envoyer dans le CSS.
Par exemple pour ton menu :
<ul id="menu_horizontal">
<li><img src="images/menu/1.PNG" width="85" height="28" alt="menu"/></li>
<li><a href="accueil.html"><img src="images/menu/accueil.PNG" width="51" height="28" alt="accueil"/></a></li>
<li><img src="images/menu/2.PNG" width="42" height="28" alt="menu"/></li>
<li><a href="homme.html"><img src="images/menu/homme.PNG" width="65" height="28" alt="homme"/></a></li>
<li><a href="femme.html"><img src="images/menu/femme.PNG" width="69" height="28" alt="femme"/></a></li>
<li><a href="enfant.html"><img src="images/menu/enfant.PNG" width="62" height="28" alt="enfant"/></a></li>
<li><img src="images/menu/3.PNG" width="24" height="28" alt="menu"/></li>
<li><a href="contact"><img src="images/menu/contact.PNG" width="119" height="28" alt="contact"/></a></li>
<li><img src="images/menu/4.PNG" width="60" height="28" alt="menu"/></li>
</ul>
Tout ce qui est définition de style comme width, height, et même les images, hop dans le CSS. Idem pour tout le reste de ta page...
Pour le menu, tu risques d'être ennuyé par tes images toutes différentes, d'ailleurs, alors que tu pourrais t'en sortir avec moins :
* une de 1px de large pour le fond dégradé
* une pour le trait de séparation (largeur juste celle du trait)
* une pour le bord arrondi gauche (juste la largeur de l'arrondi)
* une pour le bord arrondi droit (idem)
Le texte n'étant que du texte, il peut être écrit en toutes lettres dans le HTML, et positionné via CSS sur un fond constitué des images "vierges".
Je suis claire là ?