PassFront
  1. PassFront
  2. База знаний
  3. Основы CSS

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

Основы CSS

`display: none` убирает элемент из раскладки полностью, `visibility: hidden` делает его невидимым, но место за ним остаётся.

display: none

  • Элемент не занимает места, соседи сдвигаются.
  • Не попадает в render tree, недоступен скринридерам.
  • Нельзя кликнуть или сфокусировать.
  • Переключение вызывает пересчёт раскладки.

visibility: hidden

  • Элемент занимает место, но не отрисовывается.
  • Тоже скрыт от скринридеров и недоступен для кликов и фокуса.
  • Потомок может стать видимым через visibility: visible.
  • Можно плавно анимировать вместе с opacity.
.tooltip { visibility: hidden; opacity: 0; transition: opacity .2s, visibility .2s; }
.tooltip.open { visibility: visible; opacity: 1; }

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

display: none — элемента нет в раскладке, visibility: hidden — элемент невидим, но место сохраняется.

Подробнее: MDN — visibility

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