优先用 :支持嵌套内容、语义清晰、可访问性好、样式可控; 仅支持纯文本且兼容性差。

用 <button></button> 还是 <input type="button">?
优先用 <button></button>。它天然支持嵌套内容(比如图标 + 文字)、语义清晰、可访问性好,而且默认样式更可控。<input type="button"> 只能放纯文本,且在某些老浏览器里对 padding 和 line-height 的处理不一致。
常见错误:用 <input type="submit"> 却没包在 <form></form> 里,结果点击后页面刷新或报错;或者误以为 <input> 更“轻量”,其实现代浏览器中两者开销几乎没差别。
-
<button></button>支持disabled、type="button|submit|reset",注意type不写默认是submit,非表单内点击可能意外触发表单提交 -
<input type="button">的value是显示文本,不能插 html;而<button></button>的文本写在开始和结束标签之间,可加<svg></svg>或<span></span> - 若需兼容 IE8 及更早版本(极少见),
<input>确实更稳,但此时 js 交互和 CSS 也大概率出问题,不如整体升级方案