I will quote the article The Difference Between Anchors, Inputs and Buttons:
<a> element) represent hyperlinks, resources a person can navigate to or download in a browser. If you want to allow your user to move to a new page or download a file, then use an anchor.
An input (
<input>) represents a data field: so some user data you mean to send to server. There are several input types related to buttons:
Each of them has a meaning, for example "file" is used to upload a file, "reset" clears a form, and "submit" sends the data to the server. Check W3 reference on MDN or on W3shool.
The button (
<button>) element is quite versatile:
- you can nest elements within a button, such as images, paragraphs, or
- buttons can also contain
- buttons support the
disabled attribute. This makes it easy to turn
them on and off.
Again, check W3 reference for
<button> tag on MDN or on W3shool.