什么时候用button,什么时候用a标签

一、问题

能实现链接功能的标签一般就a标签,button标签,input submit标签

input submit肯定是提交表单的时候用

那什么时候用button,什么时候用a标签

 

能用a标签的地方尽量使用a标签么?

只有在例如type=submit的时候才使用button标签?

是否a标签比button标签更好?原因是什么?

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

 

二、解答

特意去翻了之前看过的一篇文章。

​你不能创造一个按钮​

个人觉得主要三个原因:

  • 尊重一个标签被创造出来时的初衷
  • 在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事件即可

 

具体看情况,按钮功能上用input或者button都可以。

但是button里面可以嵌套内容,input则不行,所以具体情况具体看。

a标签一般用作超链接或者锚链接。

理论上你用一个a标签也可以做出button的样式。所以具体还是要看实际情况的。