@harve

Как оставить focus рабочим только для меню?

Добрый день. Имеется такое: https://codepen.io/noddes/pen/LYoZjQB

Справа ссылки. Если по ним нажимать, то выбранная ссылка подчеркивается, но если кликнуть в любом месте страницы(или вообще произвести любые действия), то подчеркивание слетает. Как это исправить? Знаю, что можно кастомный андерлайн прикрутить, но интересует данный вариант.
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега CSS
Нужно назначать кликнутой ссылке отдельный класс, который бы обозначал её активность.
Это делает на основании адреса страницы либо бэкенд при генерации шаблона, либо JS, если это SPA.

В представленной песочнице это может выглядеть примерно так:
.nav ul li a.active {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: .1em;
}

const $links = document.querySelectorAll('.nav a');

Array.from($links).forEach(($link) => {
  $link.addEventListener('click', (event) => {
    document.querySelector('.nav a.active')?.classList.remove('active');
    event.target.classList.add('active');
  })
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы