Est une balise d'ancrage sans l'attribut href sûr?
Est-il acceptable d'utiliser une balise d'ancrage sans y compris le href
attribut, et au lieu d'utiliser un JavaScript cliquez sur gestionnaire d'événement? Donc, je voudrais d'omettre l' href
complètement, même pas de vide (href=""
).
- Je pense que dans la plupart des navigateurs (au moins dans Firefox), le lien ne sera pas cliquable sans a href...
- Sémantiquement parlant, il n'est pas ok, mais si vous désirez le faire, personne ne vous en empêche. La question est, pourquoi voudriez-vous le faire? pourquoi ne pas juste utiliser un span/div/p/quelle que soit la balise... si vous n'avez pas besoin de le href, pourquoi utiliser un tag?
- L'événement onclick déclenche toujours bien? Je veux utiliser les balises d'ancrage au lieu de span/div parce que c'est la seule balise qui prend en charge CSS :hover dans IE
- Pourquoi le downvote?
- Les ANCRES sont accessibles et peuvent être activés par l'intermédiaire du clavier. Régulière SPAN éléments ne peuvent pas. Voir ici: jsfiddle.net/simevidas/4DTxv/2
<span>
éléments très certainement peut est possible de naviguer à l'aide du clavier. Vous pouvez aussi faire en sorte que<a>
éléments sont pas navigables au moyen du clavier.- Ah, bien sûr. Je dois avoir oublié
tabindex
. - En HTML5, et d'autres sans attribut href qui sont de l'espace réservé liens hypertextes: dev.w3.org/html5/markup/a.html
- Êtes-vous sûr que vous ne voulez pas un bouton à la place? Cela signifierait que la tabulation, etc œuvres, et vous pouvez définir le style de votre boutons ressemblent à des liens si nécessaire. Certes je ne sais pas à propos de planer dans IE.
- merci de me donner la véritable explication avec la doc officielle: son licite en html5, la norme dit qu'il
Vous devez vous connecter pour publier un commentaire.
En HTML5, à l'aide d'un
a
élément sanshref
attribut est valide. Il est considéré comme un "espace réservé lien hypertexte."Exemple:
Chercher "espace réservé lien hypertexte" sur le w3c balise d'ancrage de référence de la page: https://www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element.
Et il est également mentionné sur le wiki ici:
https://www.w3.org/wiki/Elements/a
Un espace réservé lien est pour les cas où vous souhaitez utiliser un point d'ancrage de l'élément, mais pas à naviguer n'importe où. Cela est très pratique pour le marquage de la page en cours dans un menu de navigation ou de fil d'ariane. (L'ancienne approche aurait été d'utiliser une balise span ou une balise d'ancrage avec une classe nommée "active" ou "courant" de style et JavaScript pour annuler la navigation.)
Un espace réservé lien est également utile dans le cas où vous souhaitez définir dynamiquement la destination du lien via JavaScript lors de l'exécution. Il vous suffit de définir la valeur de l'attribut href, et la balise d'ancrage devient cliquable.
Voir aussi:
href
lacursor: pointer
style ne sera pas ajouté automatiquement à l'élément.C'est OK, mais en même temps peut causer certains navigateurs pour devenir lent.
http://webdesignfan.com/yslow-tutorial-part-2-of-3-reducing-server-calls/
Mon conseil est d'utiliser <a href="#"></a>
Si vous utilisez JQuery pensez aussi à utiliser:
Réponse courte: Non.
Réponse longue:
Tout d'abord, sans un attribut href, il ne sera pas un lien. Si ce n'est pas un lien, puis il ne sera pas de clavier (ou le souffle de l'interrupteur, ou divers autres pas de pointeur de fonction d'entrée de l'appareil) accessible (sauf si vous utilisez des fonctions HTML 5 de
tabindex
qui ne sont pas universellement pris en charge). Il est très rare qu'il est approprié pour un contrôle de ne pas avoir accès au clavier.Seconde. Vous devriez avoir une solution de rechange pour quand le JavaScript ne s'exécute pas (parce qu'il était lent à charger à partir du serveur, une connexion à Internet a été abandonné (par ex. signal de téléphonie mobile sur un train en mouvement), le JS est désactivé, etc, etc).
Faire usage de amélioration progressive par discrète JS.
href
était obligatoire (sauf si c'était une ancre nommée dans lequel cas tabindex n'a pas de sens). L'utilisation detabindex
pour ajouter unfocusable éléments à l'ordre de tabulation est une nouvelle innovation dans le HTML 5.a
balise sanshref
attribut.tabindex
comme technoTarek déjà dit. Vous êtes aussi mauvais indiquanthref
est obligatoire. Directement à partir de la HTML4 spec il déclare: "les Auteurs peuvent également créer Un élément qui ne spécifie pas d'ancres, c'est à dire, qui ne spécifie pas le href, le nom ou l'id de l'." Créer une ancre sanshref
attr (1) sont parfaitement valide en HTML, (2) parfaitement en sécurité, (3) utile dans plusieurs situations. Je ne commenterai pas plus loin, mais votre réponse est tout simplement faux.. À tout le moins, céder votre "réponse courte" est extrêmement trompeur.tabindex
n'est pas une fonctionnalité de HTML5. À l'aide d'una
élément sanshref
attribut est valide HTML4. À l'aide d'untabindex
attribut sur ledit élément sanshref
attribut est également valable HTML4. Votre "réponse" avec le "contexte" est tout aussi mauvais que votre "réponse courte." Je ne vois pas en quoi vous n'êtes pas à la compréhension. Si quelqu'un vient à cette page et voit votre réponse, ils vont repartir avec une compréhension incorrecte et plus important encore, une réponse qui est tout simplement faux. De toute façon, les commentaires ne sont pas de longues discussions, donc mes excuses pour le même répondant. Je ne vais pas être la réponse plus loin.Si vous devez utiliser href vers l'arrière la compatibilité, vous pouvez également utiliser
au lieu de # ,si vous ne voulez pas utiliser l'attribut
La balise est bien d'utiliser sans un attribut href. Contrairement à beaucoup de réponses ici, il y a effectivement des raisons de norme pour la création d'un point d'ancrage quand il n'y a pas de href. Du point de vue sémantique, "un" moyen d'une ancre ou d'un lien. Si vous l'utilisez pour tout ce qui suit que les sens, alors vous êtes très bien.
Une utilisation standard de l'une balise sans un href consiste à créer nommé liens. Cela vous permet d'utiliser un point d'ancrage avec le nom=blah et plus tard, vous pouvez créer un point d'ancrage href=#bla lien vers la section de la page en cours. Toutefois, cela a été abandonné parce que vous pouvez également utiliser l'Id de la même manière. Comme un exemple, vous pourriez utiliser une balise d'en-tête avec l'id=en-tête et plus tard, vous pourriez avoir une ancre pointant vers href=#header.
Mon point de vue, cependant, est de ne pas vous suggérons d'utiliser le nom de la propriété. Seulement de fournir un cas d'utilisation où vous n'avez pas besoin d'un href, et donc la raison pour laquelle il n'est pas nécessaire.
href
attribut pour une<a>
élément qui a été utilisé comme un élément interactif (c'est à dire un lien). Comme vous le mentionnez, sanshref
attribut c'est tout simplement... pas un lien, un point d'ancrage, ce qui est complètement autre chose.Dans une perspective d'accessibilité
<a>
sans a href n'est pas de l'onglet-mesure, tous les liens doivent être d'onglet en mesure d'ajouter un tabindex='0" si vous n'avez pas de href.La
<a>
balise sans le "href" peut être pratique lors de l'utilisation de multi-niveau des menus et vous avez besoin d'augmenter le niveau suivant, mais ne veulent pas que le menu de l'étiquette pour être un lien actif. Je n'ai jamais eu aucun problème à l'utiliser de cette façon.Dans certains navigateurs, vous ferez face à des problèmes si vous ne vous donnez pas un href de la balise. Je vous suggère d'écrire votre code à quelque chose comme ceci :
vous pouvez remplacer yourcode() avec votre propre fonction ou logique,mais n'oubliez pas d'ajouter return false; déclaration à la fin.
#
pour la page d'index. Pour certains de mes navbar liens je ne veux pas déclencher une route à#
qui est-ce qui arrive si vous utiliseza href="#"
par lui-même. À l'aide de<a href="#" onclick="return false;"
arrêts de l'itinéraire qui a été déclenché, mais l'événement click encore des bulles jusqu'à mon gestionnaire (qui utilise les événements DOM accroché via jQuery et de la colonne vertébrale.La Radio). Merci @shashwat13 🙂J'ai été capable de faire ce travail:
et il ignore le clic. Puis-je utiliser jQuery pour attraper le "dumb-bouton" cliquez et pour déclencher mon code (masquer certaines vrd /afficher un div).