Zu aller erst solltest du keinen HTML-5-Quellcode ("nav", "header", "section") mit einer XHTML-Deklarierung vermischen.
Bezüglich des Hover-Effektes finden sich so einige gute Anleitungen im Netz.
Hier einige davon.
Ich würde vorschlagen, das Menü folgendermaßen aufzubauen:
Code:
<ul id="menu">
<li id="startseite"><a href="#"><span>Startseite</span></a></li>
<li id="etwas-anderes"><a href="#"><span>Etwas anderes</span></a></li>
[...]
</ul>
Das <span>-Element umschließt die Menüpunkte in Textform, die nicht angezeigt werden sollen.
In der CSS-Datei hieße das:
Code:
#menu span { display: none; }
Wie du siehst, bekommt jeder Menüpunkt eine separate ID, z. B. "etwas-anderes".
Diese ID machen wir uns zu Nutze, indem wir für jede ID eine separate Grafik mit dem Textzug in der Wunschschriftart festlegen.
CSS:
Code:
#menu #etwas-anderes a { display: block; width: [COLOR="Blue"]XX[/COLOR]px; height:[COLOR="Blue"] YY[/COLOR]px; background: url(etwas-anderes.png) no-repeat; }
Für den Hover-Effekt bräuchten wir nur noch die folgende Anweisung:
CSS:
Code:
#menu #etwas-anderes a:hover { background: url(etwas-anderes-hover.png); }
Die beiden letzten CSS-Codezeilen musst du dann nur noch für jeden einzelnen Menüpunkt kopieren und entsprechend anpassen (vor allem die Breite und die Grafik).
Für den Anfang wäre das eine vergleichsweise "saubere" und semantische Lösung. Es ginge natürlich auch etwas komplexer mit nur einer Grafikdatei, aber wir belassen es einmal beim Einfacheren

.