В чем разница между display: none и visibility: hidden

«В чем разница между display: none и visibility: hidden» — вопрос из категории CSS, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

display: none полностью удаляет элемент из потока документа, освобождая занимаемое им место. Элемент не отображается и не влияет на верстку.

visibility: hidden скрывает элемент, но он остается в потоке документа, занимая место. Просто становится невидимым.

Пример:

<div style="display: none;">Не видно и места нет</div>
<div style="visibility: hidden;">Не видно, но место есть</div>

Разница:

  • display: none — элемент игнорируется браузером, не участвует в рендеринге.
  • visibility: hidden — элемент рендерится, но прозрачный.

Применение:

  • display: none — для динамического скрытия/показа без сохранения места.
  • visibility: hidden — когда нужно скрыть элемент, но сохранить его влияние на верстку.