Encodera

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

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

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

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

Кнопке добавьте атрибут disabled — её нельзя нажать и выбрать с клавиатуры:

<button>Active</button>
<button disabled>Disabled</button>

Оформление неактивной кнопки

Свои стили для такого состояния задаёт псевдокласс :disabled:

<style>
  .btn { padding: 10px 20px; border: 0; border-radius: 8px; background: rebeccapurple; color: white; cursor: pointer; }
  .btn:disabled { background: silver; cursor: not-allowed; }
</style>
 
<button class="btn">Pay</button>
<button class="btn" disabled>Pay</button>

Отключить ссылку

У ссылки нет атрибута disabled. Надёжнее всего убрать у неё href: без него <a> перестаёт быть ссылкой — на неё нельзя нажать и перейти по Tab. Добавьте aria-disabled="true", чтобы скринридер сообщил о состоянии, и оформите её через селектор a:not([href]):

<style>
  a:not([href]) { color: gray; cursor: not-allowed; }
</style>
 
<a href="#">Next page</a> ·
<a aria-disabled="true">Previous page</a>

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

Ссылку «отключают» только свойством pointer-events: none. Мышью её действительно не нажать, но клавиатура по-прежнему доходит до неё через Tab и открывает по Enter:

<a href="https://example.com" style="pointer-events: none; color: gray;">Still reachable with Tab</a>

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

  • disabled — Отключает элемент формы: с ним нельзя взаимодействовать, и его значение не отправляется.
  • :disabled — Срабатывает у элементов формы с атрибутом `disabled`; `:enabled` — у активных.
  • <button> — Кнопка: отправляет форму или запускает действие.
  • pointer-events — Реагирует ли элемент на щелчки и касания или пропускает их к тому, что под ним.
  • aria-* — Атрибуты доступности: роль, название и состояние элемента для программ чтения с экрана.

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

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