何时(以及何时不应)使用锚点标签?

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 200 美元的免费额度!

来自读者 Don Wilson 的有趣问题

我很想知道你的看法。 我们应该何时使用锚点标签,何时应该使用其他东西?

我通常在想要某些内容可点击时随意使用 `a` 标签。 我查阅了定义,似乎我在不应使用 `a` 标签的地方使用了它。 我浏览了 Gmail 的源代码,他们大多数的可点击内容都使用 `div` 元素。

我认为我的用法源于在 JavaScript 尚未广泛用于事件之前编写 HTML 的经历。 无论如何,我现在不确定在哪里应该为 `a` 标签划定界限。 你的看法是什么?

我认为,如果你要为锚点添加一个 href 属性,即使 JavaScript 被禁用,该属性也能实际执行某些操作,那么锚点就是正确的选择。 如果应用程序完全依赖 JavaScript,所有行为都通过 JavaScript 附加,我想你使用什么元素并不重要。 也许不使用锚点甚至更好,因为行为可能与锚点链接的行为毫无相似之处。 不过,你可能可以让我改变主意。 问题是,锚点为你(“免费”)提供了许多你想要的视觉功能,并且具有广泛的浏览器支持。 所以……

如果你选择不将锚点链接用于可点击的功能元素,那么

  • 使用 `cursor: pointer;`,以便用户获得他们习惯的可点击光标。
  • 在元素上使用 `tabindex` 属性,以便键盘用户可以切换到它。
  • 定义 :hover:active:focus 样式。

查看演示