2011-04-28 4 views
1

The CSS Markup Detective suggère d'améliorer le balisage lorsqu'il existe des liens avec href = #.href avec "#", est-ce une mauvaise pratique?

Ayant href = # est une mauvaise pratique ou mauvais balisage? Dans certaines situations, esp. par rapport à discret c'est le seul moyen, non?

Voici un exemple qui doit être amélioré:

<a href="#">Cancel</a> 
+0

Voulez-vous dire - comme dans un lien qui est seulement un hachage - ou voulez-vous dire href « avec » # comme dans une adresse de liaison contenant un hachage? Votre ligne d'objet et la question semblent en désaccord ... –

+0

@Dylan, a ajouté un exemple –

+0

SO l'utilise pour l'étoile sur la gauche: 'favorite' –

Répondre

0

Je ne pense pas que ce soit une mauvaise pratique. Juste pour le laisser en production, enfin, c'est une mauvaise pratique. Et si vous travaillez avec des étiquettes à l'intérieur de la page, c'est aussi une bonne pratique.

0

J'utilise href = "javascript :;" si cela est requis L'utilisation de href = "#" traite l'ancre comme une ancre dans la page en cours et peut provoquer un comportement indésirable (comme une fenêtre/cadre défilant vers le haut sur un clic).

0

Ce n'est pas une mauvaise pratique, et il vaut mieux que . Si vous voulez arrêter la page de 'saut' annuler la propagation de l'événement de clic ou retourner false à partir de la fonction onclick.

4

Il est considéré comme une mauvaise pratique car il n'a pas de sens sans JavaScript. Si vous avez des liens avec seulement un # comme le href, alors vous comptez probablement sur JavaScript pour exécuter quand ce lien est interagi avec. Donc, fondamentalement, vous devriez faire l'une des choses suivantes:

  1. Créer une URL appropriée qui imite l'action que le JavaScript ferait. Cela permet aux utilisateurs avec JavaScript désactivé pour toujours accéder à la fonctionnalité. Si JavaScript est activé, vous pouvez simplement intercepter le clic, annuler l'action par défaut (navigation vers l'URL du lien) et effectuer votre logique d'amélioration progressive habituelle.

  2. Ajouter le lien dynamique avec JavaScript sur la page charge si vous ne disposez pas d'une solution de repli ou ne peut pas faire ce travail de fonctionnalité sans JavaScript. De cette façon, un utilisateur avec JavaScript désactivé ne pourra pas voir les liens qui ne fonctionneront pas pour lui de toute façon. Vous pouvez coupler ceci avec des balises <noscript> pour informer l'utilisateur qu'il manque certaines fonctionnalités de votre site en désactivant JavaScript.

Questions connexes