Кнопки в HTML5: виды, различия и правильное использование

Категория:

Кнопки — один из самых простых и в то же время важных элементов интерфейса.
С их помощью пользователи отправляют формы, запускают скрипты, переключают режимы и делают десятки других действий. В HTML5 появилось больше гибкости в работе с кнопками, а также новые способы их стилизации и управления поведением.

Какие бывают кнопки в HTML5

В HTML можно создавать кнопки двумя основными способами: через <button> и через <input> с типом button, submit или reset. Каждый из них имеет своё поведение и область применения.

Тег <button>

Это универсальный тег, в который можно вложить любой контент — текст, иконку, даже изображение. Он принимает атрибут type, который определяет его поведение:

  • type="submit" — отправляет форму
  • type="reset" — сбрасывает значения формы
  • type="button" — обычная кнопка, не влияет на форму

Пример:

htmlКопироватьРедактировать<button type="submit">Отправить</button>
<button type="reset">Сбросить</button>
<button type="button">Нажми меня</button>

Тег <input> с типом кнопки

Это более старый способ, но он всё ещё работает. Такие кнопки не могут содержать HTML-контент — только текст в атрибуте value.

Пример:

htmlКопироватьРедактировать<input type="submit" value="Отправить форму">
<input type="reset" value="Очистить форму">
<input type="button" value="Просто кнопка">

Различие между <button> и <input>

Главное различие — в гибкости.
<button> позволяет вставлять любой HTML-внутрь (например, иконки и стилизованные элементы), а <input> ограничен только текстом. Также <button> чаще используют в современных проектах, особенно при применении JavaScript и фреймворков.

Как работает кнопка Submit

Кнопка submit по умолчанию отправляет форму.
Если она находится внутри тега <form>, браузер при клике попытается отправить данные. Это поведение можно переопределить с помощью JavaScript, например, чтобы отправить форму через fetch.

Если на странице несколько кнопок submit, можно указать одну из них как основную или задать каждой свою функцию через formaction.

HTML5-нововведения для кнопок

HTML5 расширил возможности кнопок за счёт новых атрибутов:

  • autofocus — устанавливает фокус на кнопку при загрузке страницы
  • disabled — делает кнопку неактивной
  • form — позволяет привязать кнопку к форме вне неё
  • formaction, formenctype, formmethod, formtarget — переопределяют параметры отправки

Эти атрибуты делают кнопки более гибкими и независимыми от расположения в DOM.

Кнопки в HTML5 — это мощный инструмент интерфейса, который теперь можно использовать гораздо гибче, чем раньше. Выбирая между <button> и <input>, стоит ориентироваться на задачи проекта: если нужна простота — подойдет <input>, если контроль и стилизация — лучше использовать <button>.