我正在创建一个Web应用程序,其中包含一个更改单个页面元素的命令列表。该页面100%依赖于JavaScript。因此,我将这些链接编码为:
<a href="#">Command #1</a>
怀疑这在语义上是正确的,我发现有很多地方说我应该使用button
代替。
这是有道理的,但这意味着我必须改变按钮的样式,使其看起来像一个链接,感觉很烦。这是正确的方法吗?
答案 0 :(得分:2)
你给元素的样式与它的语义是否正确的代码无关,所以我不会太担心它。
Links
旨在将用户链接到网页上。
HTML Input
元素旨在吸引用户输入并使用它们执行操作。
基于这个简单的启发式,我会说按一下按钮!
答案 1 :(得分:1)
HTML5规范非常明确,因为您不应该使用a
:
如果
a
元素具有href
属性,则表示超链接(超文本锚点)。
这些是其他资源的链接[...]
因此,请勿在您的单页网页应用中使用a
作为“操作”。
您应该使用button
或resp。 input
(我会说type
值为button
)。
如果您想深入了解更新的HTML5内容,请查看menu
和command
。
只是为了确定:你不应该用JS来“增强”其他元素(如span
或div
),就像链接/按钮一样。如果没有进一步的工作,这将无法获得。
答案 2 :(得分:0)
我认为使用链接在语义上不正确。如果它让您感觉更好,您可以将链接设置为按钮。
否则,如果仍然以错误的方式摩擦你,那么将按钮设计成链接就没有错。您的应用程序的功能应该与您呈现按钮的方式无关,只要它们执行相同的操作并符合您的期望。
如评论中所述,如果您希望使用按钮,请记住它们作为表单元素设置样式,并且使用锚标记会更加困难。
答案 3 :(得分:0)
两者在技术上都很好用。对我来说,如果是文本链接,那么我会使用<a>
标记,如果是表单按钮或图片,请使用<button>
。这样,您就可以使用元素。
答案 4 :(得分:0)
一般来说,我更喜欢使用div来做这些事情。链接带有许多固有的浏览器样式,对于按钮更是如此。 Div的唯一规则是display:block。所以它节省了一些重置css线。它还节省了一些js代码,以防止默认行为。再加上没有正确的语义选择,然后使用div是很有意义的。