PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Какое свойство позволяет спрятать элемент, но сохранить занимаемое им пространство?

Продвинутые темы

Спрятать элемент, сохранив занимаемое место, позволяет свойство `visibility: hidden`. Элемент невидим, но остаётся в потоке (место сохраняется).

visibility: hidden

.el { visibility: hidden; }
  • Элемент невидим, но занимает своё место в потоке (соседи не сдвигаются).
  • Не реагирует на клики (некликабелен).

Сравнение способов скрытия

visibility: hidden — сохраняет место

.el { visibility: hidden; } /* невидим, место занято */

display: none — НЕ сохраняет место

.el { display: none; } /* исчез из потока, место не занимает */

opacity: 0 — сохраняет место, но кликабелен

.el { opacity: 0; } /* прозрачен, место занято, РЕАГИРУЕТ на клики */

Таблица различий

  • `visibility: hidden` — Видимость: нет; Место в потоке: сохраняет; Клики: нет; В render tree: да
  • `display: none` — Видимость: нет; Место в потоке: не занимает; Клики: нет; В render tree: нет
  • `opacity: 0` — Видимость: нет; Место в потоке: сохраняет; Клики: да; В render tree: да

Когда что использовать

  • Скрыть, сохранив место (чтобы layout не «прыгал») → visibility: hidden.
  • Убрать полностью → display: none.
  • Скрыть, но оставить кликабельным/анимируемым → opacity: 0.

Коротко для собеседования

Спрятать элемент, сохранив место, — visibility: hidden (невидим, но занимает место в потоке, некликабелен). Отличие от display: none (убирает из потока, место не занимает) и opacity: 0 (прозрачен, место занято, но кликабелен). Используют, когда layout не должен «прыгать» при скрытии.

Другие вопросы раздела