Разница между свойствами visibility и display при скрытии элементов в CSS заключается в том, как они влияют на поток элементов на странице. 25
Visibility (значение — hidden) указывает браузеру скрыть элемент, зарезервировав под него место на веб-странице. 1 Браузер только скрывает элемент, не удаляя его из общего потока, поэтому на месте скрытого элемента остаётся пустое пространство, совпадающее по размеру с размером скрытого элемента. 1
Display (значение — none) указывает браузеру скрыть элемент, убрав его из общего потока элементов. 1 В этом случае элемент, расположенный после скрытого элемента, будет смещаться вверх, занимая место скрытого элемента. 1
Таким образом, visibility используют, когда нужно, чтобы элемент занимал своё место даже когда его не видно, а display — когда нужно, чтобы элемент отдавал своё пространство, позволяя другим элементам на странице смещаться вокруг него. 2