Для создания навигационных ссылок в HTML есть элемент
<a>. Но можно ли создать ссылку, используя <button> без JavaScript? Можно! При помощи элемента <form>:<form>
<button formaction="/">Главная</button>
<button formaction="/catalog">Каталог</button>
<button formaction="/about">О нас</button>
<button formaction="/delivery">Доставка</button>
</form>
Это работает, потому что кнопка по умолчанию имеет
type="submit", что приводит к отправке родительской формы при нажатии. У кнопки указан атрибут formaction, который переопределяет значение action у родительской формы. У самой формы не указан атрибут method, значит по умолчанию используется get. В итоге при нажатии на кнопку будет отправлен get-запрос на соответствующий адрес, что приведёт к загрузке новой страницы.Ещё можно вынести кнопки из формы при помощи атрибута
form, который создаёт связь по id: <form id="router"></form>
<button form="router" formaction="/">Главная</button>
<button form="router" formaction="/catalog">Каталог</button>
<button form="router" formaction="/about">О нас</button>
<button form="router" formaction="/delivery">Доставка</button>
Не ясно, правда, зачем это всё нужно, если есть
<a>. Но просто знайте, что так можно. Иногда в коде можно найти кнопки с обработчиком click и вызовом window.location.href. Вот такие кнопки можно заменить на кнопки с формой, которые будут работать без JavaScrpt. Или это может сгодится для странных вопросов на собеседовании или каких-то ультра-редких случаев.#ydkhtml