← Все вопросы
Чем display:none отличается от visibility:hidden на практике?
16
Прячу элемент. Видел оба варианта — display: none и visibility: hidden. Выглядят одинаково (элемента не видно). В чём разница и что выбрать?
3 ответа
28
✓ Принятый ответ — помог автору
Главная разница — занимает ли элемент место.
display: none— элемент полностью исчезает из потока. Места не занимает, как будто его нет в разметке. Соседи сдвигаются на его место.visibility: hidden— элемент невидим, но место за ним остаётся. Получается «дырка» нужного размера.
Ещё нюансы:
display: noneнельзя анимировать переходом (до недавнего времени совсем),visibility— можно комбинировать с opacity.- Скринридеры и поиск по странице (Ctrl+F) обычно игнорируют
display: none, аvisibility: hiddenтоже скрывает от них.
Правило: нужно убрать элемент совсем — display: none. Нужно «зарезервировать» место (например, чтобы layout не прыгал) — visibility: hidden.
sam jones ещё есть opacity: 0 — невидим, место занимает И ловит клики, в отличие от visibility:hidden · 17 месяцев назад
9
Коротко: display: none убирает элемент из потока (место схлопывается), visibility: hidden оставляет пустое место.
4
display: none — места нет. visibility: hidden — место есть.
Ваш ответ
Войдите, чтобы ответить на вопрос.