2010-10-03 7 views
1

Je sais que cela peut sembler simple, mais je ne peux pas le résoudre, Im essayant de rendre l'ensemble liable d'élément de liste, plutôt que le mot homehyperlien d'un élément de liste?

le code html:

<a href="#page1"><li class="current">Home</li></a> 

P.S. Lorsque vous passez la souris sur le li, la couleur d'arrière-plan change, donc je veux que tout l'élément de la liste soit hyperlié, si ce n'est pas le mot

Répondre

3

Envelopper un élément de niveau bloc (le li) dans un élément en ligne (a), est un balisage non valide, qui a le potentiel de générer des erreurs, en fonction de votre doctype. Cela étant le cas, tout d'abord changer votre marge autour de:

<li><a href="#">link text</a></li> 

En supposant que votre li est display: block alors le suivant entraînera la a à « remplir » l'espace disponible:

a { 
display: block; 
width: 100%; /* this may, or may not, be necessary */ 
} 

Si vous utilisez cela pour une liste horizontale, et le li sont display: inline, vous pouvez utiliser les éléments suivants:

a { 
    display: inline-block; 
    } 

Et style-à-goûter.

1

Est-ce dans le sens inverse

<li class="current"><a href="#page1">Home</a></li> 

ne sais pas ce que vos autres styles sont mais vous pouvez changer l'étiquette avec quelque chose comme

li.current a{ 
    display:block; 
} 
1

Cela devrait le faire:

HTML:

<li class="current"><a href="#page1">Home</a></li> 

CSS:

li a { 
    display: block; 
} 

// or 

li.current a { 
    display: block; 
}