我发现除非在表单上,否则<a>
锚标签几乎总是用作按钮。
我的问题不是为什么要使用<a>
标签,而是为什么href="#"
还要使用。
据我了解,<a>
没有 href 是有效的 html,实际上,在“按钮”锚和链接锚标记之间提供了更多区别,因为:link
只有:visited
在存在 href 时才会触发。甚至光标也可以变回指针,并且通过更改::selection
. (示例)
虽然两者都受到影响:active
(尽管可以通过说a:visited:active, a:link:active {---}
链接来区分),但我能想到不这样做的唯一原因是也删除了标签顺序。
但是,从好的方面来说,您可以删除href="#"
(这在测试页面、禁用 javascript 等时很有用),为“按钮”提供不同的默认样式,并且更容易在代码中区分。此外,您始终可以将其分配tabindex="0"
到选项卡流中,并且将来 css 可能会引入nav-index,它已经在 Opera 中引入(尽管这是一个有风险的属性)。
虽然删除标签顺序可能很麻烦,但我认为它是这样的:您只需替换href="#"
for tabindex="0"
,它仍然可以区分“按钮”和链接,从而允许您设置它们的样式。
所以我想我最初的为什么href="#"
使用的问题仍然是我的主要关注点,但我想听听我是否错过了为什么应该/不应该做的任何兴趣点,以潜在地成为将链接与“按钮”分开的更好方法.