<button>can contain HTML.
<input type="button" />on the other hand is an empty element (such as
image), therefore it cannot contain content.
<button>supports pseudo-elements such as
:beforewhich is very useful to style the button. Whereas
<input type="button" />doesn't.
<button>has the default attribute
type="submit". It means that if the
typeattribute isn't specified, clicking the button will submit its enclosing form.
If you want the
inputto behave as a submit button, we have to change the
buttonelement is more semantic than the
inputwith type of
button. It's recommended to use the
buttonelement if you want to create a clickable button.
Always specific the
typeattribute for the
buttonelement. The possible values are
|The button submits the form data to the server|
|Resets form inputs to initial values|
|By default, it does nothing when pressed|