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

用 <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 也大概率出问题,不如整体升级方案
按钮点击没反应?检查这三件事
90% 的“按钮点不动”不是代码写错,而是事件绑定或 DOM 状态出了问题。
- 确认 JS 获取到的是真实 DOM 节点:用
console.log(document.querySelector('button'))看是否为null—— 常见于脚本执行早于 HTML 解析,把 JS 放在











