If you need to jump users to in-page links, also known as fragment identifiers, you can set the id
attribute (which is used for more than just frag ids) on any element. Then use the usual #
in the URL of a href
attribute of an a
element. Here’s an example:
<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>
When writing my own pages, I like to give an id
to each <section>
tag (HTML5), even if I don’t plan on using it. The value of the id
is a URL-friendly version of its heading’s content. You can achieve the same effect by assigning the same id
to an <h1>
, etc.
Lastly, empty <a>
tags are not deprecated, as indicated in the HTML5 spec:
If the a
element has no href
attribute, then the element represents a placeholder for where a link might otherwise have been placed …
Additionally the same applies for area
elements:
The href
attribute on a
and area
elements is not required; when those elements do not have href
attributes they do not create hyperlinks.