Как еще можно скрыть элемент кроме display: none и visibility: hidden?
Основы CSS
Кроме display: none и visibility: hidden, элемент можно скрыть ещё несколькими способами — у каждого своё поведение.
Способы
- `opacity: 0` — элемент прозрачный, но занимает место и реагирует на клики (добавляют
pointer-events: none). - Атрибут `hidden` — HTML-аналог
display: none. - `content-visibility: hidden` — не отрисовывает содержимое, сохраняя состояние; хорошо для больших скрытых панелей.
- Визуально скрытый класс — убирает с экрана, но оставляет для скринридеров:
.visually-hidden {
position: absolute; width: 1px; height: 1px;
overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}- `transform: scale(0)` или вынос за экран — для анимаций появления.
- `height: 0; overflow: hidden` — для аккордеонов.
- `aria-hidden="true"` — скрывает от скринридеров, но не визуально.
Как выбирать
Убрать полностью — display: none или hidden; анимировать — opacity/transform; оставить для скринридеров — .visually-hidden.
Коротко для собеседования
opacity: 0, атрибут hidden, content-visibility, визуально скрытый класс, трансформации и height: 0 — выбор зависит от того, нужны ли место, анимация и доступность.
Подробнее: The A11Y Project — How-to: Hide content