Если свойство видимости установлено на "hidden"
, браузер все равно будет занимать место на странице для содержимого, даже если оно невидимо.
Но когда мы устанавливаем объект на "display:none"
, браузер не выделяет место на странице для его содержимого.
Пример:
<div style="display:none">
Content not display on screen and even space not taken.
</div>
<div style="visibility:hidden">
Content not display on screen but it will take space on screen.
</div>
Подробнее