Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как сделать ссылку в виде кнопки

Короткий ответ

Сделайте ссылку строчно-блочной, задайте отступы и фон и уберите подчёркивание:

<style>
  .btn-link { display: inline-block; padding: 10px 20px; border-radius: 8px; background: seagreen; color: white; text-decoration: none; }
  .btn-link:hover { background: darkgreen; }
</style>
 
<a class="btn-link" href="#">Sign up</a>

display: inline-block нужен, чтобы вертикальные отступы раздвигали соседние строки, а не наезжали на них.

Ссылка и кнопка одинаково

Часто ссылка и настоящая кнопка стоят рядом, и выглядеть они должны одинаково. Сбросьте у кнопки шрифт и рамку и дайте обоим один класс:

<style>
  .btn { display: inline-block; padding: 10px 20px; border: 0; border-radius: 8px; background: steelblue; color: white; font: inherit; text-decoration: none; cursor: pointer; }
</style>
 
<a class="btn" href="#">Read more</a>
<button class="btn">Subscribe</button>

Что выбрать

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

Частая ошибка

Вместо ссылки ставят <div> с обработчиком щелчка. Такой «кнопки» нет в порядке перехода по Tab, её нельзя нажать Enter и открыть в новой вкладке. Для перехода всегда используйте <a href>.

Функции из этого ответа

  • <a> — Ссылка на другую страницу, файл или место на странице.
  • <button> — Кнопка: отправляет форму или запускает действие.
  • display — Определяет, как элемент ведёт себя в потоке и как раскладывает содержимое.
  • padding — Внутренний отступ между содержимым и рамкой элемента.
  • text-decoration — Линии на тексте: подчёркивание, зачёркивание, надчёркивание.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.