Почему jQuery show / hide использует display: none вместо visibility: hidden?
display:none
означает, что элемент не отображается как часть DOM, поэтому он не загружается, пока свойство display не изменится на что-то другое.
visibility:hidden
загружает элемент, но не показывают это.
почему jQuery использует display:none
для Показать/Скрыть функции вместо переключения между visibility:hidden
и visibility:visible
?
5 ответов:
потому что
display:none
, элемент, для всех целей, перестает существовать - он не занимает никакого пространства. Однако, вvisibility:hidden
, это как если бы ты просто добавилopacity:0
к элементу -- он занимает такое же количество пространства, но просто действует невидимо.создатели jQuery, вероятно, думали, что первый будет лучше подходит для
.hide()
.
visibility: hidden
делает элемент невидимым, но не удалить его из макета страницы. Он оставляет пустую коробку, где был элемент.display: none
удаляет его из макета, чтобы он не занимал места на странице, что обычно требуется людям, когда они что-то скрывают.