【发布时间】:2012-08-12 03:06:09
【问题描述】:
我发现除非在表单上,<a> 锚标记几乎总是用作按钮。
我的问题不是为什么要使用<a> 标签,而是为什么还要使用href="#"。
据我了解,没有 href 的 <a> 是有效的 html,实际上,它提供了“按钮”锚和链接锚标签之间的更多区别,因为 :link 和 :visited 仅在存在链接。甚至可以通过更改::selection 将光标更改回指针,并且文本突出显示问题。 (example)
虽然两者都受到:active 的影响(尽管可以通过说a:visited:active, a:link:active {---} 来区分链接),但我能想到不这样做的唯一原因是也删除了跳格顺序。
但是,从好的方面来说,您可以删除 href="#"(这在测试页面、禁用 javascript 等时很有用),为“按钮”提供不同的默认样式,并且更容易区分在代码中。此外,您始终可以将其分配 tabindex="0" 以将其放回选项卡流中,并且将来 css 可能会引入 nav-index,它已经在 Opera 中引入(尽管这是一个有风险的属性)。
虽然删除标签顺序可能很麻烦,但我认为它是这样的:您只需将 href="#" 替换为 tabindex="0",它仍然可以区分“按钮”和链接,让您还可以设置它们的样式。
所以我想我最初的问题是为什么使用href="#" 仍然是我的主要关注点,但我想听听我是否错过了关于为什么应该/不应该这样做以可能成为更好的方法的任何兴趣点将链接与“按钮”分开。
【问题讨论】:
-
不再需要锚标签。只需给一个元素一个 ID,您就可以将其用作锚点。
-
@arxanas:是的,我听说 HTML6 正在删除除
div之外的所有元素。它真的会彻底改变 Web 开发。 -
@Lèsemajesté 谁还需要那些讨厌的新标签?太有用了。