我现在在移动设备上,我找不到我最近阅读的建议不要使用 div 来实现按钮功能的帖子。也许哲学已经得到了足够的认同,这并不重要。
似乎 div 的样式比<button>
类型更容易(不幸的是,在我无法参考的答案中推荐了这一点)。即使这不是真的,使用 div 作为按钮有什么缺点?
谢谢!
<div>
几乎没有或没有语义意义。它只是一个通用容器。
<a>
, <button>
, 或<input type=button>
全部使事情变得更清楚,它应该做什么,等等。
这有几个优点:
可访问性:屏幕阅读器或任何知道如何处理的机会<a>
比它设法弄清楚您<div>
实际上是一种与 Web 服务器或其他东西进行通信的方式要大得多。
用户界面优势:如果用户习惯于在可点击元素或其他内容之间切换,如果您使用的元素清楚地表明用户可以点击/按下/任何内容,他们的浏览器更有可能做正确的事情。如果您使用<div>
,则浏览器可能不会突出显示它或执行通常所做的任何事情来告诉人们他们可以单击它。
您可以免费获得可点击性,而不必附加 onclick 或其他任何东西。使用 a <div>
,没有 JavaScript 可能无法使其工作。对于其他元素,至少还有希望(尤其是<a>
)。
我可能会遗漏很多我从未想过的其他事情,也许以上不是最好的例子,但我怀疑你明白了。
<div>
不支持该tabindex
属性。所以键盘用户处于劣势。
此外,网页优化器(例如移动设备上的 Google)不太可能去除<input>
.