FFan丶Blog / html相关标签 / / <button> 与 <input type="submit"> 完全对比

<button> 与 <input type="submit"> 完全对比

分类:html相关标签 发布时间:2026-04-14 15:47:09来源:FFan丶Blog
这两个标签都能实现表单提交按钮,但用法、功能、兼容性差异很大,以下是详细对比:一、核心区别一句话总结<input type="submit">:纯文本按钮,只能显示文字,不能嵌套标签,样式限制多。<button>:容器型按钮,可以放文字、图片、图标、HTML 标签,功能更强、更灵活。二、代码用法对比1. <input type="submit">语法格式:<input type="submit" value="提交表单"&g...

这两个标签都能实现表单提交按钮,但用法、功能、兼容性差异很大,以下是详细对比:

一、核心区别一句话总结

  • <input type="submit">:纯文本按钮,只能显示文字,不能嵌套标签,样式限制多。

  • <button>:容器型按钮,可以放文字、图片、图标、HTML 标签,功能更强、更灵活。

二、代码用法对比

1. <input type="submit">

  • 语法格式:<input type="submit" value="提交表单">

  • 特点:

    1. 必须用 value 属性定义按钮上的文字

    2. 不能添加图片、图标、换行或其他 HTML 标签

    3. 样式修改麻烦(不同浏览器默认样式差异大)

2. <button>(推荐现代开发使用)

  • 基础用法:<button type="submit">提交表单</button>

  • 扩展用法(可加图标、图片、HTML):<button type="submit"> <img src="icon.png"> 提交 </button>

  • 重要提醒:必须写 type="submit",否则默认在部分浏览器里会识别为普通按钮,无法触发表单提交。

三、功能详细对比表

特性<input type="submit"><button type="submit">
能否提交表单✅ 能✅ 能
能否显示图片 / 图标❌ 不能✅ 可以
能否嵌套 HTML❌ 不能✅ 可以
文字控制方式通过 value 属性设置直接在标签内写文字内容
样式自由度低(默认样式难修改)极高(支持所有 CSS 样式)
表单默认行为自动触发表单提交自动触发表单提交
浏览器兼容性全兼容(包括超老浏览器)全兼容(现代浏览器 + 老浏览器)

四、最重要的坑(90% 新手踩过)

1. <button> 不写 type 属性会出问题

  • 错误写法:<button>点击</button>(危险!部分浏览器默认识别为 submit 类型,会意外提交表单)

  • 正确写法:

    1. <button type="submit">提交</button>(用于提交表单)

    2. <button type="button">普通按钮</button>(仅触发点击事件,不提交表单)

    3. <button type="reset">重置</button>(用于重置表单内容)

2. <input type="submit"> 不能放图片

若需要实现带图标 / 图片的按钮,只能使用 <button> 标签。

五、实际开发怎么选?

推荐使用 <button type="submit"> 的场景

  • 现代项目(Vue、React、原生开发等)全部优先使用

  • 需要制作带图标、图片的按钮

  • 对按钮样式有个性化要求(如渐变、圆角、hover 效果)

  • 追求语义化结构(代码更易读)

推荐使用 <input type="submit"> 的场景

  • 极简单的小表单(仅需纯文字提交按钮)

  • 需兼容超老系统(如 IE6 及以下,实际极少遇到)

  • 不需要额外样式修饰,仅需默认按钮效果

六、最简单记忆法

  • <input type="submit"> = 纯文字按钮(功能单一、样式固定)

  • <button> = 万能按钮(功能灵活、样式自由)

  • 核心结论:想做漂亮按钮、带图标按钮 → 一定用 <button type="submit">

总结

  1. <input type="submit">:简单、只能显示文字、灵活性差,适合极简场景。

  2. <button type="submit">:功能强、可放图片 / 图标、样式易控制,现代开发首选。

  3. 关键注意点:<button> 必须明确写 type 属性(submit/button/reset),避免意外提交表单。


使用说明

  1. 全选上面的文字,直接复制粘贴到 Word 中即可;

  2. Word 中可通过「开始」选项卡调整标题层级(如将 “一、核心区别” 设为一级标题,“1. <input type="submit">” 设为二级标题);

  3. 表格粘贴后会自动保留结构,可在 Word 中调整表格样式(如边框、对齐方式)。


上一篇:表单提交按钮图片形式

下一篇:没有了

猜你喜欢

  • <script type="text/javascript">     $('.artbody *[style]').each(function(){    if($(this).css('text-align') == 'center')   $(this).css('text-indent', '0em'); });

    部分JS效果2020-07-30
  • if(location.toString().indexOf("abc.com") <= -1)     /*如果当前网址中没有abc.com*/ { document.location.href="/b.htm";   /*跳转到b.htm*/ } else

    部分JS效果2020-08-24
  • 在CSS3中,我们可以使用transform属性的scale()方法来实现元素的缩放效果。 语法: transform: scaleX(x);         /*沿X轴方向缩放*/ transform: scaleY(y);         /*沿Y轴方向缩放*/

    CSS2021-04-14
  • sql替换语句,用该命令可以整批替换某字段的内容,也可以批量在原字段内容上加上或去掉字符。 命令总解:update 表的名称 set 此表要替换的字段名=REPLACE(此表要替换的字段名, '原来内容', '新内容')

    数据库2021-05-19
  • 新建一个目录名为sitemap的栏目,然后从 /template/tools/ 中复制一个名为 sitemap.baidu.htm 的ICMS自带网站地图XML模板,到自己的模板文件夹中,然后去ICMS系统后台,为前面新建的sitemap栏目,列表模板调用该 sitemap.baidu.htm 模板文件。

    ICMS2021-06-03