Как скрыть элемент
Короткий ответ
display: none убирает элемент со страницы целиком:
<p>Before the hidden block.</p>
<p style="display: none;">The hidden block.</p>
<p>After the hidden block.</p>То же самое делает атрибут hidden прямо в HTML: <p hidden>. Его удобно ставить и снимать из JavaScript.
Скрыть, но оставить место
visibility: hidden делает элемент невидимым, но место за ним сохраняется:
<p>Before the hidden block.</p>
<p style="visibility: hidden;">The hidden block.</p>
<p>After the hidden block.</p>Прозрачность
opacity меняет прозрачность от 0 до 1. Прозрачный элемент остаётся на месте и реагирует на щелчки:
<p style="opacity: 0.4;">Translucent text</p>Если элемент нужно спрятать только визуально, а программам чтения с экрана оставить, нужен приём из статьи «Как скрыть элемент визуально, но оставить для скринридеров».
Частая ошибка
Элемент прячут через opacity: 0 и считают, что его больше нет. Невидимая кнопка по-прежнему занимает место, ловит щелчки и получает фокус с клавиатуры:
<button style="opacity: 0;" onclick="alert('Clicked!')">Hidden</button>
<span>← there is an invisible button here</span>Функции из этого ответа
- display — Определяет, как элемент ведёт себя в потоке и как раскладывает содержимое.
- hidden — Скрывает элемент: он не показывается и недоступен программам чтения с экрана.
- visibility — Скрывает элемент, но сохраняет занятое им место.
- opacity — Прозрачность всего элемента вместе с содержимым.