在写前端页面的时候什么时候用a标签什么时候用button标签

能用a标签的地方尽量使用a标签么?
只有在例如type=submit的时候才使用button标签?
是否a标签比button标签更好?原因是什么?

那一个按钮 点击弹出来弹窗,或者一个按钮点击触发一个事件(例如收藏),用什么比较好?

阅读 10.1k
8 个回答

特意去翻了之前看过的一篇文章。
你不能创造一个按钮

个人觉得主要三个原因:

  • 尊重一个标签被创造出来时的初衷

  • 在PC端使用tab或者方向键切换焦点后,按下enter键,button(input[type=button])的click事件会被触发而其他标签不会。

  • 你想实现一个disabled属性时,a标签需要一句似乎麻烦一些

语义上说,a一般是链接,一般指向一个地址;button是按钮,一般点击后调用本页方法。
实际上随你便,只要你写的代码没有看了想开除你,想用什么都无所谓

另外,button貌似默认就是type=submit吧,放在表单里的裸button点击就提交表单了,不过我一般用input type=submit,除非是按钮里需要放一些比较花哨的内容时才会用button

需要添加链接,或者直接从服务端get数据的用a标签。其他地方button可以的话就用button。没有哪个便签比哪个更好,只有哪个标签更适用哪些场景。你可以通过以下方法权衡一下:
1.需要与后端进行数据交互吗?不需要的话button即可
2.要与后端交互?如果是get方式的话使用a标签很方便。如果是post等方式,用button,绑定ajax事件即可

没有好与不好的问题,看用的是不是地方。
我个人比较喜欢用a标签写按钮的组件,自带点击态,方便好用。

我说点有关button的坑吧

如果button处于form当中,默认点击是会触发submit的。

一般来说,没太多界限,没多少功能的或页面跳转尽量用a,form用btn,弹窗和收藏a和btn都可以。

每个标签创造的时候,都有它自己的语义意义,遵循这个意义即可。

想一想,假使你的网站去掉了css,它是否能语义展示(列表、按钮、链接、段落等明确展示),就知道什么时候使用什么标签了。

另外,有个节日叫【CSS裸奔节】。

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