2010-11-16 6 views
0

je le scénario suivantPositionnement du texte pour afficher sur une image avec CSS

<TD><a href="index-1.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image20','','images/m21.jpg',1)"><img src="images/m2.jpg" name="Image20" width="103" height="136" border="0">Home</a></TD> 

Je veux que le texte d'accueil apparaissent au-dessus de l'image par exemple. flottant sans que l'image ne perde réellement la position onmouseof et onmouseover, est-ce posible?

Répondre

2

Je voudrais faire la source d'image l'arrière-plan de cette une étiquette et le positionner correctement pour gagner de la place pour que le texte « flotter » au-dessus

<td><a href="index-1.html">Home</a></td> 

CSS

td a /* probably better to use an ID here #myAnchor */ 
{   
    vertical-align: top; 
    height: 156px; /* padding 20px to save room for "Home" text */ 
    width: 103px; 
    display: inline-block; 
    background: url('images/m20.jpg') no-repeat 0 20px; 
    text-align: center; 
} 

td a:hover /* probably better to use an ID here #myAnchor */ 
{ 
    background: url('images/m21.jpg'); 
} 
+1

@hunter ... vous devriez ajouter que si vous la source d'image en arrière-plan, vous devez définir la hauteur et la largeur de l'étiquette pour afficher l'image entière . –

+0

J'étais au milieu de l'édition et l'ajout de cela, mais vous avez absolument raison – hunter

1
<style> 
#thisNavElement{ 
width:103px; 
height:136px; 
display:block; 
text-align:center; 
vertical-align:center; 
background:url(images/m2.jpg); 
} 
#thisNavElement:hover{ 
background:url(images/m21.jpg); 
} 
</style> 

<a id='thisNavElement'>Home</a> 
0

En votre CSS, vous pouvez dire

#my_anchor { 
    background: url(images/m21.jpg); 
} 

puis changez simplement l'arrière-plan en JavaScript/jQuery

+0

ou le définir aveC#my_anchor: hover dans le css ... – FatherStorm

+0

Oui, bon appel. Je ne sais pas pourquoi mais cela m'a échappé: P –

0

Comme alternative, vous pouvez simplement placer votre texte dans une balise span, puis utiliser css pour le positionner comme vous le souhaitez.

<TD> 
    <a href="index-1.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image20','','images/m21.jpg',1)"> 
     <img src="images/m2.jpg" name="Image20" width="103" height="136" border="0" /> 
     <span class="someclassname">Home</span> 
    </a> 
</TD> 
0
<TD><a href="index-1.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image20','','images/m21.jpg',1)"><img src="images/m2.jpg" name="Image20" width="103" height="136" border="0"><div id='text'>Home</span></a></TD> 

CSS:

#id { 
position: relative; 
top: -20px; 
z-index: 2; 
} 
+0

devrait être #id = #text –

+0

Pas vraiment une bonne forme pour placer un élément de niveau bloc (div) à l'intérieur d'un élément en ligne (balise d'ancrage) si vous vous souciez de la validation. Autre que cela, juste une petite faute de frappe où vous avez une balise d'envergure fermant une div. –

+0

Oh! Je voulais que cette div soit étendue .. Merci pour le commentaire - Vous avez absolument raison. –