Le code HTML <a name="some_bookmark">text</a>
est très utile pour créer des liens vers des sections spécifiques d'une page (par exemple, page.html#some_bookmark
). Cependant, la spécification W3C marque maintenant l'attribut name
de la balise a
comme "obsolète".
Si tel est le cas, alors qu'est-ce qui est préféré? Existe-t-il une nouvelle balise <bookmark>
ou similaire?
Vous pouvez placer un attribut id=""
sur n'importe quel élément et cela aura le même effet.
Celles-ci sont généralement placées sur des éléments d'en-tête.
Regardez les spécifications HTML5.
À Fonctions obsolètes vous trouverez:
Les auteurs ne doivent pas spécifier l'attribut
name
sur les élémentsa
.
En cliquant sur name
, vous trouverez:
[Les attributs suivants sont obsolètes (bien que les éléments fassent toujours partie du langage) et ne doivent pas être utilisés par les auteurs:]
name
sura
elements (sauf comme indiqué dans la section précédente)name
surembed
elementsname
surimg
elementsname
suroption
elements→ Utilisez plutôt l'attribut
id
.
Cliquez sur id
. Vous verrez que id
est un attribut global , cela signifie qu’elle peut être utilisée sur l’élément any.
L'attribut
id
spécifie l'identificateur unique (ID) de son élément.
[…]
Remarque: L'identificateur unique d'un élément peut être utilisé à diverses fins, notamment comme moyen pour créer un lien vers des parties spécifiques d'un document à l'aide d'identificateurs de fragment, comme moyen de cibler un élément lors de la création de scripts , et comme moyen de styler un élément spécifique à partir de CSS.
vous devriez utiliser l'attribut id=""
. :)
(Remarque: migré de https://webmasters.stackexchange.com/a/30031/10884 et modifié pour être bref.)
Si vous devez passer des utilisateurs aux liens de page, également appelés identificateurs de fragment , vous pouvez définir l'attribut id
(qui est utilisé pour plus que de simples identifiants fragmentés ) sur any élément. Utilisez ensuite le #
habituel dans l'URL d'un attribut href
d'un élément a
. Voici un exemple:
<body>
<p>Despite the many
<a href="#benefits-of-gum-chewing">benefits</a>
you may experience while chewing gum, there are also many drawbacks,
especially with
<a href="http://www.example.org/sugar.html#cons">non-sugarless</a>
gum.</p>
...
<section id="benefits-of-gum-chewing">
<h1>Benefits of Gum Chewing</h1>
...
</section>
</body>
Lors de la rédaction de mes propres pages, j'aime bien attribuer une id
à chaque balise <section>
(HTML5), même si je ne prévois pas l'utiliser. La valeur de id
est une version conviviale du contenu de son en-tête. Vous pouvez obtenir le même effet en attribuant la même id
à un <h1>
, etc.
Utiliser id n'est pas toujours idéal car ils sont uniques, par exemple si vous avez une liste de liens en tant qu'éléments de menu et que vous souhaitez exécuter du javascript sur certains d'entre eux uniquement lorsque l'utilisateur survole, utiliser un identifiant serait un gâchis.
Actuellement, le meilleur moyen, à mon avis, consiste à utiliser un class pour les identifier en tant que groupe.
<a class="mylink">Menu Item one</a>
<a class="mylink">Menu Item two</a>
<a class="mylink">Menu Item three</a>
<a>Menu Item four</a>
Mais je continue d’utiliser le tag de nom, c’est stupide de déprécier quelque chose de si mineur, car il n’a aucun effet sur les performances ou autre chose, pose problème si les navigateurs décident de ne pas accepter le badge à un moment donné. Cela nous éloigne également de l'utilisation des normes.