0

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

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

怀疑这在语义上是否正确,我发现很多地方都说我应该使用 abutton来代替。

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

4

5 回答 5

2

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

Links是为了在网络上的页面之间链接用户。

HTMLInput元素旨在接受用户输入并使用它们进行操作。

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

于 2012-10-15T21:02:20.790 回答
1

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

如果a元素有一个href属性,那么它代表一个超链接(超文本锚)。

“超链接”的定义是:

这些是指向其他资源的链接 […]

所以不要a在你的单页网络应用程序上使用“操作”。

你应该去button 或resp。input(我会说两者的type值都是button)。

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


只是为了确定:您不应该使用 JS 来“增强”其他元素(如spandiv)以充当链接/按钮。如果没有进一步的工作,这将无法访问,如果有的话。

于 2012-10-15T21:48:22.490 回答
0

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

否则,如果这仍然让您感到困扰,那么将按钮设置为看起来像链接并没有错。你的应用程序的功能应该与你如何呈现你的按钮无关,只要它们做同样的事情并且符合你的期望。

正如评论中提到的,如果您想使用按钮,请记住它们的样式是表单元素,并且比使用锚标记更难。

于 2012-10-15T21:00:09.510 回答
0

两者在技术上都可以使用。对我来说,如果它是文本链接,那么我会使用<a>标签,如果它是表单按钮或图像,则使用<button>. 这样,您就可以与预期使用的元素保持一致。

于 2012-10-15T21:02:24.410 回答
0

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

于 2012-10-15T21:06:44.767 回答