Как скрыть ссылку «Значки» в боковой панели?

Предполагаю, что кастомизация боковой панели будет добавлена со временем, но пока я хотел бы убрать ссылку «Значки» или хотя бы скрыть её внутри раздела «Ещё…».

Стоит ли пока просто использовать CSS для её скрытия?

Я не совсем понимаю, как правильно написать CSS. Контейнеры со ссылками имеют класс sidebar-section-link-wrapper и не имеют id. Когда я пытаюсь скрыть тег a с помощью правила a.sidebar-section-link-badges { display: none; }, ничего не скрывается.

Привет! В гамбург-меню я использовал псевдокласс «nth-child» для решения подобных задач

https://www.w3schools.com/cssref/sel_nth-child.asp

nth-child очень полезен во многих случаях, однако в данном случае, вероятно, это рискованно. Поскольку он опирается исключительно на номера, для этого потребовалась бы гарантия того, что значки (Badges) останутся на тех же позициях.

Если что-то будет добавлено, удалено или перемещено перед ними, позиция значков изменится, что может привести к их отображению, скрытию других элементов, и это может остаться незамеченным.

Псевдокласс :has() идеально подходит для этой задачи, но, к сожалению, его поддержка всё ещё ограничена: в частности, он отключён по умолчанию в Firefox и отсутствует во многих мобильных браузерах.

Если скрытие не является для вас критичным, то есть допустимо скрывать элемент везде, где это возможно для лучшего пользовательского опыта, но оставлять видимым в браузерах, которые пока не поддерживают :has(), вы можете использовать следующий селектор:

sidebar-section-link-wrapper:has(a.sidebar-section-link-badges) { display: none; }

Спасибо за идеи. Пока, скорее всего, поступлю именно так. Но надеюсь, что в будущем можно будет добавить id.

Здравствуйте,

Вы можете скрыть это с помощью этого. :slightly_smiling_face:

.sidebar-section-link-wrapper {
  .sidebar-section-link.sidebar-section-link-badges {
    display: none;
  }
}

Я просто скопировал и вставил это в компонент своей старой темы (который делал то же самое с прежним меню-бургером), и всё заработало! Большое спасибо, и ещё раз спасибо всем остальным.

К сожалению, этот CSS, похоже, не работает с 2.9.0beta12… есть какие-нибудь идеи? :slight_smile:

Это всё ещё работает у меня в последней версии.


Можешь поделиться своим кодом?

Приношу извинения. Всё работает. Я закомментировал это из-за бага со ссылкой «Ещё».

Суть бага в том, что ссылка отображается, даже если в меню «Ещё» нет пунктов. Учитывая количество пунктов на моём форуме, наличие опции «Значки» (которую я не хочу видеть) хотя бы даёт ссылке «Ещё» какую-то работу! (Проблема остаётся: когда вы находитесь на самой странице «Значки», бесполезная ссылка «Ещё» всё ещё там.) "More..." shows in sidebar when there is nothing more

По какой-то причине функция «вставить URL поверх текста для создания гиперссылки» не сработала при редактировании этого сообщения.

Понятно. На самом деле, я думаю, это не баг, так как опции меню «Ещё» там присутствуют, но скрыты, поэтому оно не пустое. Но если я правильно понял, вы скрываете всё содержимое меню «Ещё»? Если это так, то, на мой взгляд, лучше скрыть весь раздел «Ещё»?

Чтобы скрыть выпадающее меню «Ещё» со всех страниц:

// скрыть меню «Ещё» со всех страниц
.sidebar-more-section-links-details {
  display: none;
}

Если вы хотите скрыть его на конкретной странице, вы можете использовать класс body для адресации.

Вы можете найти его здесь.

Например, на странице значков это будет выглядеть так:

// скрыть меню «Ещё» на конкретной странице (значки)
body.badges-page {
  .sidebar-more-section-links-details {
    display: none;
  }
}

Это скроет выпадающее меню «Ещё», но отобразит Значки в боковой панели.


Однако, если вы используете предыдущий код для скрытия Значков, они тоже не отобразятся.

// скрыть пункт меню «Ещё» для значков
.sidebar-section-link-wrapper {
  .sidebar-section-link.sidebar-section-link-badges {
    display: none;
  }
}

// скрыть меню «Ещё» на конкретной странице (значки)
body.badges-page {
  .sidebar-more-section-links-details {
    display: none;
  }
}

Я считаю это ошибкой, потому что, на мой взгляд, опция «Ещё» не должна появляться, если нет ничего дополнительного, и, следовательно, нажатие на «Ещё» должно иметь какой-то эффект. Сообщение об ошибке находится здесь: "More..." shows in sidebar when there is nothing more