Почему jQuery show / hide использует display: none вместо visibility: hidden?


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

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

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

5 71

5 ответов:

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

создатели jQuery, вероятно, думали, что первый будет лучше подходит для .hide().

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

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

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

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