你为什么想要一个不是 link 的锚标签? (没有 href 属性?)

Why would you want an anchor tag that is not a link? (no href attribute?)

问题

我已经阅读了一些较早的 SO 帖子,研究有关锚伪 类 的信息,并且不断遇到 "a" 与 "a:link" 之间的混淆以及您何时以及为何使用它们.在我看到的最常见的原因中,经常说 "a" 的样式 link 像

<a name="something">

我的问题

  1. 我很好奇是否有人可以解释为什么你想做那样的事情?
  2. 我读到它可能与 JavaScript 定位有关,但是对于 HTML5/CSS3 和像 jQuery 这样的库,这甚至是一种可以使用的有效技术吗?
  3. 在什么情况下使用不是 link 的锚标记(即没有 "href" 属性)是 #BestPractice ,或者此方法是否已完全弃用?

可用于元素的页内定位(例如滚动到某个点):

<a name="table-of-contents"></a>
<h1>Table of Contents</h1>
...
<a href="#table-of-contents">Table of Contents</a>

不过,这通常是多余的(也可能会占用白色 space),因为可以直接定位具有 ID 的元素:

<h1 id="table-of-contents">Table of Contents</h1>
...
<a href="#table-of-contents">Table of Contents</a>

<a> name 属性在 HTML5 中在技术上不再受支持,尽管浏览器仍然支持它以实现向后兼容性。

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#Obsolete

我建议您从现在开始坚持使用 <a id="something">。如果您看过使用 name 的示例,那么可以证明它们仍然是 HTML 4 天后的残余。