是否可以使用锚标签而不包含href
属性,而是使用JavaScript click事件处理程序?因此,我将href
完全省略,甚至不留空(href=""
)。
<span>
最肯定可以通过键盘导航的元素。您也可以这样做,以使<a>
元素无法通过键盘导航。
是否可以使用锚标签而不包含href
属性,而是使用JavaScript click事件处理程序?因此,我将href
完全省略,甚至不留空(href=""
)。
<span>
最肯定可以通过键盘导航的元素。您也可以这样做,以使<a>
元素无法通过键盘导航。
Answers:
在HTML5中,使用a
没有href
属性的元素是有效的。它被认为是“占位符超链接”。
例:
<a>previous</a>
在w3c定位标记参考页上查找“占位符超链接”:https : //www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element。
Wiki上也提到了它:https: //www.w3.org/wiki/Elements/a
占位符链接用于您要使用锚元素但不希望其导航到任何地方的情况。这对于在导航菜单或面包屑轨迹中标记当前页面非常方便。(旧方法可能是使用span标签或锚标签以及名为“ active”或“ current”的类来设置其样式,并使用JavaScript取消导航。)
如果您想在运行时通过JavaScript动态设置链接的目的地,则占位符链接也很有用。您只需设置href属性的值,锚标记即可单击。
也可以看看:
href
的cursor: pointer
风格不会被自动添加到元素。
可以,但是同时会导致某些浏览器变慢。
http://webdesignfan.com/yslow-tutorial-part-2-of-3-reducing-server-calls/
我的建议是使用<a href="#"> </a>
如果您使用的是JQuery,请记住也要使用:
.click(function(event){
event.preventDefault();
// Click code here...
});
简短答案:不可以。
长答案:
首先,没有href属性,它将不会是链接。如果不是链接,则无法访问键盘(或呼吸开关或其他各种非基于指针的输入设备)(除非您使用的HTML 5功能tabindex
不受普遍支持)。非常适合没有键盘访问权限的控件。
第二。当JavaScript无法运行时(因为从服务器加载速度太慢,Internet连接被断开(例如,正在行驶的火车上的移动信号),JS被关闭等),您应该有一个替代方案。
href
是强制性的(除非它是一个命名锚,在这种情况下,tabindex没有意义)。使用tabindex
向制表符顺序添加无法定位的元素是HTML 5的一项新创新。–
a
没有href
属性的标记确实是完全有效的。
如果没有href属性,则可以使用该标签。与此处的许多答案相反,实际上,没有href时,创建锚的标准原因是有标准的。语义上,“一个”表示锚点或链接。如果将其用于遵循此含义的任何事情,那么您就可以了。
不带href的a标签的一种标准用法是创建命名链接。这样,您可以使用name = blah的锚点,以后可以使用href =#blah创建锚点以链接到当前页面的命名部分。但是,已弃用此方法,因为您也可以以相同的方式使用ID。例如,您可以使用带有id = header的header标记,以后可以使用指向href =#header的锚点。
但是,我的观点不是建议使用name属性。仅提供一个不需要用href的用例,并因此说明为什么不需要它。
href
的<a>
元素的属性。正如您所提到的,没有属性就很简单……不是链接,只是锚,这完全是另一回事。href
<a>
从无href 的可访问性的角度来看,所有链接都应该是可制表的,因此,如果没有href,则添加tabindex ='0“。
<a>
使用多级菜单时,不带“ href” 的标签会很方便,您需要扩展下一级,但不希望该菜单标签成为活动链接。我从来没有用这种方式有任何问题。
在某些浏览器中,如果不提供href属性,则会遇到问题。我建议您编写如下代码:
<a href="#" onclick="yourcode();return false;">Link</a>
您可以使用自己的函数或逻辑替换yourcode(),但要记得添加return false; 最后的声明。
#
索引页。对于我的某些导航栏链接,我不想触发一条路由,#
如果您单独使用a href="#"
它会发生什么。使用<a href="#" onclick="return false;"
停止触发的路由,但是click事件仍然冒泡到我的处理程序中(该处理程序使用通过jQuery和Backbone.Radio挂钩的DOM事件)。谢谢@ shashwat13 :)