Hallo,
Jedoch will ich das, wenn man mit der maus über das bild (durch <img> in eine <td> eingefügt) fährt ein anderes Bild (durch <td background="URL"> eingefügt) erscheint.
Warum möchtest Du das? CSS ist doch viel entspannter, man nutzt nur noch strukturelles Markup statt nicht valider und vor allem unflexibler background-HTML-Attribute.
Deine Problemstellung ist etwas anders als bei meinem ersten Versuch, Dir zu helfen, aber gut, wenn Du es so willst. Dein Quellcode sieht anscheinend so aus:
<td background="bild-b.png"><img src="bild-a.png" alt="..."></td>
D.h. das Default-Bild wird durch das img-Element definiert und überlagert das Hintergrundbild. Ich würde erstmal kurz aufräumen und das beknackte background-Attribut in CSS verlagern:
HTML:
<td id="nav"><img src="bild-a.png"></td>
CSS:
~~~css
td#nav {
background-image:url(bild-b.png);
}
Effektiv ist dann alles noch, was übrig bleibt zu definieren, dass ...
wenn der Mauszeiger über der Tabellenzelle schwebt ...
... das Bild in der Tabellenzelle ausgeblendet wird.
Du suchst also nach einem Selektor, der auf ein img-Element passt, das sich in einer Tabellenzelle befindet, auf die die Pseudoklasse :hover wirksam wird. Und dazu nutzt Du einfach den [Nachfahrenselektor](http://de.selfhtml.org/css/formate/zentrale.htm#verschachtelte_elemente):
~~~css
td#nav:hover img {
visibility:hidden;
}
Ich nutze hier die Deklaration visibility:hidden statt display:none, da bei visibility der vom Bild eingenommene Platz immer noch eingenommen wird, wenn das Bild nicht mehr angezeigt wird. Anders als bei display:none ändert sich die Tabellenzelle sich also in der Größe - manchmal ist das durchaus praktisch.
Tim