Почему jQuery показывает / скрывает использование отображения: нет вместо видимости: скрыто? - PullRequest
71 голосов
/ 21 июля 2009

display:none означает, что элемент не отображается как часть DOM, поэтому он не загружается, пока свойство display не изменится на что-то другое.

visibility:hidden загружает элемент, но не показывает его.

Почему jQuery использует display:none для своих функций отображения / скрытия вместо переключения между visibility:hidden и visibility:visible?

Ответы [ 5 ]

65 голосов
/ 21 июля 2009

Поскольку в display:none элемент для всех целей перестает существовать - он не занимает никакого пространства. Однако в visibility:hidden все равно, что вы только что добавили opacity:0 к элементу - он занимает столько же места, но просто действует невидимым.

Создатели jQuery, вероятно, думали, что первое подойдет для .hide().

18 голосов
/ 21 июля 2009

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

10 голосов
/ 21 июля 2009

Видимость: скрытый делает элемент невидимым таким образом, чтобы он по-прежнему занимал место на странице. Отображение: ни один не делает элемент свободным и полностью исчезает, пока он все еще существует в DOM.

6 голосов
/ 21 июля 2009

Видимость просто делает элемент невидимым, но он все равно будет занимать место на экране.

1 голос
/ 23 июля 2013

Visibility:hidden просто делает элемент невидимым, но он загружается в DOM, поэтому он потребляет время загрузки. Но Display:none не загружает элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...