html页面a标签可以不写href属性吗?

我使用一组a标签做tab切换,给a标签加上href="#"的话点击a标签总是会跳到顶部,加javascript:void(0)的话感觉有的时候点击的反应速度变慢,偶尔会卡,请教下各位如果a标签不加href会有什么影响,不符语义化或者对优化什么的有啥影响吗?

阅读 32.9k
10 个回答

其实 href="#" 的话可以通过 preventDefault() 方法阻止默认的链接跳转行为
如果用 jQuery, 则可以

$("#myLink").click(function () {
    // Your event handlers here
    return false;
});

一个 a 没有 href 也没有 tabindex 就不会被 tab 到
HTML 4 认为没有 href (但是有 name) 的 a 是命名锚点
HTML 5 认为没有 hrefa 是链接占位符
(反正对浏览器来说行为都是一样的

javascript:void(0)会卡真的只是你的感觉吧。如果这么纠结href,为何一定要用a标签呢

当然可以不加,不加的话就不是超链接了,会丢失超链接的一些特有性质,比如css样式

a标签的href其实可写可不写,如果你想让他不跳转,方法有如下:
1.href="javascript:viod(0)";或者href="javascript:;"
2.在其点击事件设置,如

a.onclick = function(){
    return false;
}

3.归根结底的本质:为什么点击之后会跳转,因为这是a标签的默认行为,可以通过阻止他的默认行为来实现。

a.onclick = function(e){
    e.preventDefault ? e.preventDefault() : e.returnValue = false;
}

a标签如果不加href属性的话,仅仅不能够导航,在网站的设计的时候,很多情况下会用a标签做一些其它的事情,比如按钮,就看你自己喜欢怎么使用了。

可以不加,但有些浏览器鼠标样式就没有手势了,然后IE6下好像还有个什么问题来着,忘了·加个href="javascript:void(0);"吧

可以不加。只不过不加href,就不能跳转页面了,而且也没有手势

a不加标签的话就类似于span的作用...然后不能跳转等等。你要防止跳到顶部,可以采用javascript事件传递。在a属性里面为click添加事件比如<a href="#" click="a(event)"> 然后在script里面写function a(event){ event.preventDefault(); }就好了

点击a标签为了防止跳到顶部,或者加javascript:void(0)为了防止感觉卡,可以这样写 href="###" 。

href="###" a标签会去寻找##锚点,肯定是不会找到的,然后就会不处理,自然页面就不会跳转

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏