107 votes

Qu'y a-t-il lorsqu'un lien a un "#" signe dedans

J'ai inspecté certains sites et ils ont un signe dièse (#) dans l'URL. Qu'est ce que ça fait?

  <a href="#" >Link name</a>
 

115voto

Dean Harding Points 40164

C'est un "fragment" ou "ancre". Vous pouvez-vous utiliser pour le lien vers la partie d'un document. Généralement, lorsque vous accédez à une page, le navigateur s'ouvre jusqu'en haut de la page. Mais vous un lien vers une section à mi-chemin vers le bas, vous pouvez utiliser le fragment lien vers l'en-tête (ou quoi que ce soit).

Si il n'y a pas d' <a name="whatever"/> balise dans la page, le navigateur va juste un lien en haut de la page. Si le fragment est vide, alors il sera également juste un lien en haut de la page.

Pour un fragment seulement <a href="#">Link name</a>, alors que juste un lien vers le haut de l' actuelle page.

On voit souvent ce type de lien utilisé en conjonction avec le javascript. Conformes aux normes HTML nécessite un href d'attribut, mais si vous avez l'intention de traiter la demande avec le javascript puis "#" raisonnablement place de titulaire.

25voto

alex Points 186293

... juste pour ajouter un peu plus de conseils utiles.

Vous pouvez accéder et modifier avec document.location.hash en JavaScript.

Il peut pointer vers une ancre nommée (par exemple, <a name="top"></a>) ou à un élément avec un id correspondant (par exemple, <div id="top"></div>).

En voir un sur son propre (par exemple, <a href="#" onclick="pop()">popup</a>) signifie en général un lien est utilisé pour exécuter JavaScript exclusivement. C'est une mauvaise pratique.

Tout a élément doit avoir un href qui pointe vers une ressource valide. Si l'un n'existe pas, envisager d'utiliser un autre élément, comme l' button.

12voto

ElectroByt Points 1

Le signe dièse ( # ) indique de localiser une ancre sur la page. Par exemple, si vous incluez ceci quelque part sur la page:

 <a name="foo"></a>
 

et puis vous cliquez sur un lien sur la page qui a le href #foo , il ira à l’ancre avec le nom foo .

Cependant, si vous avez juste le href # , cela mènera au haut de la page.

11voto

Nathan Osman Points 13475

# indique un lien vers une ancre.

Je pensais aussi mentionner quelque chose d'autre:

Utiliser '#' comme href pour un lien qui active JavaScript est mauvais car il fait défiler la page vers le haut - ce qui n'est probablement pas ce que vous voulez. Utilisez plutôt javascript:void(0) .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X