使用按钮而不是单页面Web应用程序的链接

时间:2012-10-15 20:57:25

标签: javascript html css semantic-markup

我正在创建一个Web应用程序,其中包含一个更改单个页面元素的命令列表。该页面100%依赖于JavaScript。因此,我将这些链接编码为:

<a href="#">Command #1</a>

怀疑这在语义上是正确的,我发现有很多地方说我应该使用button代替。

这是有道理的,但这意味着我必须改变按钮的样式,使其看起来像一个链接,感觉很烦。这是正确的方法吗?

5 个答案:

答案 0 :(得分:2)

你给元素的样式与它的语义是否正确的代码无关,所以我不会太担心它。

Links旨在将用户链接到网页上。

HTML Input元素旨在吸引用户输入并使用它们执行操作。

基于这个简单的启发式,我会说按一下按钮!

答案 1 :(得分:1)

HTML5规范非常明确,因为您不应该使用a

  

如果a元素具有href属性,则表示超链接(超文本锚点)。

definition of "hyperlink"是:

  

这些是其他资源的链接[...]

因此,请勿在您的单页网页应用中使用a作为“操作”。

您应该使用button或resp。 input(我会说type值为button)。

如果您想深入了解更新的HTML5内容,请查看menucommand


只是为了确定:你不应该用JS来“增强”其他元素(如spandiv),就像链接/按钮一样。如果没有进一步的工作,这将无法获得。

答案 2 :(得分:0)

我认为使用链接在语义上不正确。如果它让您感觉更好,您可以将链接设置为按钮。

否则,如果仍然以错误的方式摩擦你,那么将按钮设计成链接就没有错。您的应用程序的功能应该与您呈现按钮的方式无关,只要它们执行相同的操作并符合您的期望。

如评论中所述,如果您希望使用按钮,请记住它们作为表单元素设置样式,并且使用锚标记会更加困难。

答案 3 :(得分:0)

两者在技术上都很好用。对我来说,如果是文本链接,那么我会使用<a>标记,如果是表单按钮或图片,请使用<button>。这样,您就可以使用元素。

答案 4 :(得分:0)

一般来说,我更喜欢使用div来做这些事情。链接带有许多固有的浏览器样式,对于按钮更是如此。 Div的唯一规则是display:block。所以它节省了一些重置css线。它还节省了一些js代码,以防止默认行为。再加上没有正确的语义选择,然后使用div是很有意义的。