2010-11-12 15 views
0

Quel est le problème avec mon code? pourquoi quand je passe la souris sur la balise, ne changez pas l'arrière-plan de la balise.css: hover sur la travée dans li tag

<style type="text/css"> 
#menu ul{ 
    list-style-type: none; 
    margin-left: 0px; 
    padding-left: 0px; 
    height: 33px; 
} 
#menu li{ 
    display: inline; 
    margin-left: 5px; 
    height: 33px; 
} 
#menu a{ 
    color: #336699; 
    height: 33px; 
} 
#menu a:hover{ 
    color: #FFFFFF; 
    height: 33px; 
    background:url(images/mid.gif); 
} 
#menu li .right{ 
    width: 20px; 
} 
#menu li .right:hover{ 
    width: 20px; 
    background:url(images/right.png) no-repeat; 
    background-position: left top; 
} 
</style> 
<body> 
<div id="menu"> 
    <ul> 
     <li><a href = "">One<span class="right"></span></a></li> 
     <li><a href = "">Two<span class="right"></span></a></li> 
     <li><a href = "">Three<span class="right"></span></a></li> 
     <li><a href = "">Four<span class="right"></span></a></li> 
    </ul> 
</div> 
+0

probablement parce qu'une portée de superposition? – Hannes

+0

un exemple vivant à jsbin.com aiderait plus – Sotiris

Répondre

4

si vous demandez sur les portées, ils sont des éléments en ligne de sorte que vous ne pouvez pas donner une largeur ..

vous devez utiliser des éléments de bloc (comme l'étiquette div), ou modifiez les travées pour devenir un bloc avec display:block ou display:inline-block.

Pour plus de lecture jeter un oeil à W3C Visual Formatting Model, et aussi jeter un oeil à http://www.quirksmode.org/css/display.html#t03


Vous devez également ajouter un &nbsp; dans les travées afin qu'ils obtiennent une hauteur aussi bien ..

ici est un exemple en direct http://jsfiddle.net/YuJPg/

+0

quelle est la différence entre le bloc et le bloc en ligne? –

+0

Merci de votre aide, mais cela ne fonctionne pas pour moi. – lolalola

+0

@Collin, ajouté quelques références qui expliquent les différences. –

0

changement .RIGHT de classe pour inclure display: block;