<button>: The BUTTON Element

Last updated: 2026-10-13

<button>The BUTTON Element

The <button> element creates a clickable button. Unlike <input type="button">, it can contain arbitrary HTML (text, icons, images). The default type is submit.

CategoryForms
Content ModelPhrasing content (no interactive content)
Allowed ParentsAny element that accepts phrasing content
Content TagYes — requires closing </button> tag
StatusStandard

📝 Syntax

<button type="button">Button text</button>

⚙️ Attributes

This element supports the global attributes plus the following:

AttributeValueDescription
typeKeywordThe behavior type of the button.
  • submit — Submits the enclosing form (default).
  • button — Plain button, no default behavior.
  • reset — Resets the enclosing form.
nameTextButton name, submitted with the form.
valueTextThe value submitted with the button.
disabledBooleanDisables the button.
formForm IDAssociates the button with a form (can be outside it).

▶ Example

Edit the code below and see the live result in the playground:

🌐 Browser Support

Browser ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
<button> ✓ v1 ✓ v12 ✓ v1 ✓ v1 ✓ v1
Supported in all major browsers
Tip: Set type="button" for buttons outside forms, otherwise clicking may unexpectedly submit.

❓ FAQ

QWhat values can the button type attribute take, and what is the default?
AThree values: submit (submits the form), reset (clears it), and button (no default behavior). The default is submit — harmless outside a form, but inside one a button without an explicit type will unexpectedly trigger submission. This is the most common pitfall; always set type explicitly.
QWhat is the difference between button and input type='button'?
A<button> has a richer content model — icons, bold text, nested elements; <input type='button'> only takes plain text via value and cannot contain children. Modern projects standardize on <button>.
QCan a button contain another button?
ANo — interactive elements cannot nest: no <button>, <a>, or <input> inside a <button>. For compound interactions, split the structure or delegate events on an outer container with JS.

📚 Related Tutorials

Web-Tutorial.com

Web-Tutorial Tech Team

A team of developers maintaining programming tutorials. Each tutorial is written and reviewed by developers with expertise in that field. We work to keep our content accurate and reliable — if you spot an issue, please let us know.

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏