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 中调整表格样式(如边框、对齐方式)。


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

下一篇:没有了

猜你喜欢

  • 获取 10个分类下 每个分类最新的10篇文章<!--{iCMS:category:list loop="true" row="10"}--> <a href="<!--{$category_list.url}-->"><!--{$category_list.title}--></a>  <!--{iCMS:article:list loop="true" row="10" cid="$category_list.cid"}-->    <a href="<!--{$article_list.url}-->&quo

    ICMS2020-01-20
  • 一般的文字截断(适用于内联与块):.text-overflow {     display:block;/*内联对象需加*/     width:31em;/*指定宽度*/     word-break:keep-all;/* 不换行 */

    CSS2020-04-13
  •     <!-- 声明文档使用的字符编码 -->     <meta charset='utf-8'>     <!-- 优先使用 IE 最新版本和 Chrome -->     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>

    html相关标签2020-07-06
  • <ul><!--{iCMS:article:list loop="true" row="20" }-->    <!--{if $article_list.first}--><li><!--{/if}-->    <!--{"$article_list.index % 2"}-->        <span><!--{$article_list.title}--></span>    <!--{if $article_list.index % 2}-->        <

    ICMS2020-07-13
  • CSS3 :nth-child() 选择器 定义和用法: :nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型。 n 可以是数字、关键词或公式。

    CSS2020-07-21