CSS и вёрстка

Сделать ссылку неактивной css

📅 ⏱ 22:10 ⏳ 1 мин 💬 0

Сделать ссылку неактивной css: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Раскрываем т

Коротко: сделать ссылку неактивной в CSS можно через pointer-events: none (клики игнорируются) в связке с классом-стилем opacity и cursor. Но для доступности и корректной семантики ссылку лучше не просто «сделать неактивной», а убрать href или добавить aria-disabled="true" и tabindex="-1".

Кому и зачем«Ссылка на будущее», «раздел в разработке», «пункт недоступен» — частые задачи. Важно, чтобы ссылка не только не кликалась, но и не путала скринридеры и не ломала навигацию с клавиатуры.

Вкладки: способы отключить ссылку




CSS
.link.is-disabled {
  pointer-events: none;   /* клик не срабатывает */
  opacity: .5;
  cursor: default;
  text-decoration: none;
}

Быстро и наглядно. Но ссылка остаётся в разметке активной: по ней можно перейти с клавиатуры (Tab + Enter), и она видна скринридерам как обычная ссылка.

CODE
<span class="link is-disabled">Скоро</span>

Самый честный способ: если перехода нет, это не ссылка, а текст. Так делают, когда пункт точно недоступен. Тогда ни клика, ни фокуса, ни ложных ожиданий.

CODE
<a class="link is-disabled"
   aria-disabled="true"
   tabindex="-1"
   href="#">Скоро</a>

Компромисс: ссылка остаётся в контенте, но исключена из навигации с клавиатуры (tabindex="-1"), а aria-disabled говорит вспомогательным технологиям, что она неактивна.

JAVASCRIPT
document.querySelectorAll('.link.is-disabled').forEach(function (el) {
  el.addEventListener('click', function (e) { e.preventDefault(); });
});

Если нужен контроль в логике (например, по условию), блокируйте переход в обработчике через preventDefault().

Ссылка-заглушка с href=»#» — плохоОна уводит в начало страницы и попадает в историю. Если нужна «пустая» ссылка, используйте href="#" с preventDefault() либо вообще замените на кнопку или текст.

Как показать, что ссылка недоступна

Признак CSS
Приглушённый цвет opacity: .5 или серый цвет
Без подчёркивания text-decoration: none
Обычный курсор cursor: default
Без реакции на наведение нет :hover-стилей

Практика: правильная «неактивная» ссылка

  1. Добавьте ссылке класс is-disabled.
  2. Пропишите для класса стили (прозрачность, курсор, без подчёркивания).
  3. Добавьте aria-disabled="true" и tabindex="-1".
  4. Проверьте: Tab не должен останавливаться на ней.
  5. Если пункт точно недоступен — замените на текст.

Частые ошибки: причина → решение

Симптом Причина Решение
Ссылка всё равно кликается событие на родителе проверить обработчики, preventDefault
Ссылка ловит фокус с клавиатуры нет tabindex="-1" добавить атрибут
Переход в начало страницы href="#" без отмены preventDefault или убрать href
Скринридер читает как активную нет aria-disabled добавить атрибут

Проверьте себя

Чек-лист




Что делает pointer-events: none со ссылкой?




Какой вариант самый корректный, если перехода нет?




Вопросы и ответы

Любая ссылка с href попадает в порядок обхода Tab. Чтобы исключить её, добавьте tabindex="-1".

У кнопки есть атрибут disabled — он полностью отключает элемент и убирает его из обхода клавиатуры. Это правильнее, чем CSS-хаки.

Само по себе — нет. Но уберите «пустые» пункты из меню: поисковик не любит ссылки-заглушки, а пользователи теряются.

Да, если не убирали href: просто удалите класс и атрибуты aria-disabled/tabindex скриптом.

Итоги

  • CSS-способ (pointer-events: none) блокирует клик, но не фокус.
  • Для доступности — aria-disabled и tabindex="-1".
  • Если перехода нет, надёжнее заменить ссылку на текст.
  • Для кнопок используйте атрибут disabled.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

Наш специалист сделает базовый аудит вашего проекта и предложит персональные предложения.

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость