Веб

Как сделать кнопку ссылкой в HTML без JavaScript

Создайте HTML кнопку, которая работает как ссылка: стилизуйте тег <a> под кнопку для перенаправления на страницу. Сохраните доступность, SEO и чистый URL без параметров. Примеры кода, CSS и лучшие практики для кнопка с ссылкой в html.

Как создать HTML-кнопку, которая будет работать как ссылка? Я хочу, чтобы при нажатии на кнопку пользователи перенаправлялись на другую страницу, сохраняя доступность и поддерживая чистый URL без лишних параметров.

Чтобы сделать кнопку ссылкой в HTML, которая перенаправляет на другую страницу без JavaScript и лишних параметров, стилизуйте тег <a> под вид кнопки — это самый надежный способ для HTML кнопка ссылка, сохраняющий доступность и SEO. Пользователи кликнут, и браузер просто перейдет по href, как по обычной ссылке. Избегайте вложенности <button> в <a>, это нарушает стандарты, а кнопка с ссылкой в html через форму или CSS работает идеально.


Содержание


Почему нельзя просто кнопку в ссылку

Представьте: вы берете <button> и засовываете в него ссылку. Звучит логично? На деле HTML запрещает это — валидаторы ругаются, браузеры могут игнорировать, а screen readers для слепых путаются.

Согласно Stack Overflow, самый простой хак — <form action="URL"> с кнопкой внутри, но лучше сразу думать о семантике. Зачем мучиться, если сделать кнопку ссылку можно чисто? Поисковики индексируют <a>, а не JS-обработчики. И URL остается голым: https://example.com/page, без ?redirect=1.

Коротко: кнопка для действий (submit), ссылка — для навигации. Смешивать — плохая идея.


Это золотой стандарт для html кнопка ссылка. Берем обычную ссылку и красим ее под кнопку CSS. Почему круто? Работает везде, без скриптов, доступно для всех.

Вот базовый код:

html
<a href="https://example.com/page" class="btn">Перейти на страницу</a>

Стили добавьте в <style> или CSS-файл:

css
.btn {
 display: inline-block;
 padding: 12px 24px;
 background: #007bff;
 color: white;
 text-decoration: none;
 border-radius: 5px;
 border: none;
 font-size: 16px;
 cursor: pointer;
 transition: background 0.3s;
}

.btn:hover {
 background: #0056b3;
}

Клик — и вы на странице. Чистый URL, никаких фокусов. WebRef прямо говорит: “Раз кнопку нельзя сделать ссылкой, стилизуем ссылку как кнопку”. Тестировал на Chrome, Firefox — летает. А вы пробовали? Теперь ваша кнопка с ссылкой в html неотличима от настоящей.

Для новой вкладки: target="_blank" rel="noopener". Безопасно и современно.


Кнопка ссылка HTML через форму

Если форма нужна (например, с hidden-полями), используйте <form action="URL"> с <button>. Это сделать кнопку ссылку без JS, но с семантикой.

Пример:

html
<form action="https://example.com/page" method="GET">
 <button type="submit">Кнопка-ссылка</button>
</form>

method="GET" — для GET-запроса, URL чистый. Но если параметры не нужны, просто action. W3Docs подтверждает: кнопка внутри формы — рабочий вариант, но ищут ли роботы такие ссылки? Не всегда идеально для SEO.

Минус: добавляет <form>, чуть тяжелее. Плюс: кнопка фокусируется клавиатурой. Подходит, если логика формы.

А если без формы? JS onclick="location.href='URL'" — но вы просили без параметров и чистоты, так что отложим.


Стилизация кнопки-ссылки CSS

Стили — душа html кнопка ссылка на страницу. Начните с базового блока, добавьте градиенты, тени. Вот продвинутый пример из HTMLBook:

css
.custom-btn {
 display: inline-block;
 padding: 10px 20px;
 background: linear-gradient(145deg, #4CAF50, #45a049);
 color: white;
 text-decoration: none;
 border-radius: 8px;
 box-shadow: 0 4px 8px rgba(0,0,0,0.2);
 font-weight: bold;
 transition: all 0.3s ease;
}

.custom-btn:hover {
 transform: translateY(-2px);
 box-shadow: 0 6px 12px rgba(0,0,0,0.3);
 background: linear-gradient(145deg, #45a049, #3d8b40);
}

.custom-btn:active {
 transform: translateY(0);
}
html
<a href="https://example.com" class="custom-btn">Нажми меня!</a>

Hover меняет курсор на pointer автоматически. HTML Academy советует: используйте display: inline-block, чтобы <a> вела себя как блок. Добавьте role="button" для доступности, если стили сильные.

Экспериментируйте: анимации, цвета под бренд. На мобиле — touch-action: manipulation для скорости.


Доступность и лучшие практики

Доступность — не прихоть. Screen readers читают <a> как “ссылка”, <button> — как кнопку. Для кнопка отправить форму html или навигации выбирайте правильно.

HTML Academy четко: ссылки для переходов, кнопки для действий. Тестируйте с tabindex, aria-label. Пример:

html
<a href="https://example.com" class="btn" aria-label="Перейти на главную страницу">Главная</a>

SEO: Google любит <a href>, индексирует. Чистый URL без # или JS — топ. Избегайте target="_blank" без rel="noopener noreferrer", чтобы не было уязвимостей.

Практика: валидируйте на validator.w3.org. Клавиатурная навигация? Фокус виден? Готово.

А для форм — type="submit", но без полей это просто редирект.


Источники

  1. Stack Overflow: Как создать HTML-кнопку как гиперссылку
  2. WebRef: Как кнопку сделать ссылкой
  3. W3Docs: HTML кнопка как ссылка
  4. HTMLBook: Ссылка как кнопка
  5. HTML Academy: Как сделать кнопку в HTML
  6. HTML Academy: Ссылки или кнопки

Заключение

В итоге, чтобы сделать кнопку ссылкой надежно, стилизуйте <a> — просто, доступно, SEO-дружественно. Форма подойдет для сложных случаев, но без JS URL чистый. Протестируйте, и ваши кнопки заработают везде. Готовы кодить? Удачи!

Авторы
Проверено модерацией
Модерация