2009-09-22 7 views

Répondre

4

Eh bien, le problème immédiat est qu'il n'y a aucun élément à l'intérieur <a>#logo. Changer votre deuxième règle pour cibler l'élément correct « corriger » ce problème:

#footer a:hover 
{ 
    background-image: url(../images/logo_h.png); 
} 

Edit:
Comme il a été souligné dans les commentaires:

Le style de la première règle devrait être appliqué à l'élément A et le #logo DIV doit être supprimé car il sert aucun but que ce soit.

Ceci est en effet la meilleure solution pour votre problème, car il permettra de réduire l'encombrement et de prévenir d'autres maux de tête à l'avenir. (grâce à @Julian pour la clarification)

+1

Downvoters: Une raison particulière? Cela permet au style d'être appliqué à la balise '', sans avoir à modifier le code HTML. – Donut

+0

Ce n'est pas le downvoter anonyme, mais ils pourraient penser que la solution proposée ne suit pas les meilleures pratiques. Je vous appuierai juste pour les encourager à prendre la parole la prochaine fois. :) – Mayo

+1

@Donut: Sauf que le premier arrière-plan est appliqué à la div. C'est une conception horrible et tolérer c'est mauvais conseil. Le style de la première règle doit être appliqué à l'élément A et le #logo DIV doit être supprimé car il ne sert à rien.Je suis désolé de voter, mais je suis vraiment fatigué des solutions rapides et sales qui surgissent partout: ils promettent juste plus de questions des OP dans le futur en ne mettant pas l'accent sur le vrai problème (ie: encombrement inutile dans le DOM) . –

2

L'image d'arrière-plan est à l'origine affectée à #logo. Sur un vol stationnaire, l'image de fond de l'ANCRE est changée. Ainsi, les éléments suivants fonctionnerait:

#logo a 
{ 
    position: relative; 
    width: 100px; 
    height: 18px; 
    float: right; 

    background-image: url('../images/logo_def.png'); 
    background-repeat: no-repeat; 
    background-position: 50% 50%; 
} 

#logo a:hover 
{ 
    background-image: url(../images/logo_h.png); 
} 
+0

creusé à nouveau! Je dois taper plus vite. – dnagirl

1

Vous avez appliqué l'image de survol à un élément <a>. Il n'y a pas <a> élément dans votre intérieur votre div#logo.

0

Vous pouvez le style de votre div avoir un élément d'ancrage, puis utiliser a:hover:

<div id="blah"> 
<p> <a href="#"></a></p> 
</div> 

Ensuite, votre CSS

#blah a:hover { 
background-image: url(myImage.jpg); 
} 
0

Il convient de noter que vous ne devriez pas mettre des éléments de niveau de bloc à l'intérieur une ancre, qui est un élément en ligne que vous pouvez définir pour afficher le bloc. La hiérarchie correcte devrait être quelque chose comme div#footer > a > span#logo avec le css correspondant.

0

Ne serait-il pas plus simple d'utiliser les fonctions javascript onMouseOver et onMouseOut?

<script type="text/javascript"> 
function divcolor(){ document.getElementById('div1').style.background='#FFDFA3'; } 
function divcolor2(){ document.getElementById('div1').style.background='#FFFFFF'; } 
</script> 

<div id="div1" onmouseover="divcolor();" onmouseout="divcolor2();">Hover ME and I will highlight for you :)</div> 

J'ai utilisé des couleurs de fond, mais la même chose devrait fonctionner avec les images.

Questions connexes