display:none
means that the element isn\'t rendered as part of the DOM, so it\'s not loaded until the display property changes to something else.
Because in display:none
, the element, for all purposes, ceases to exist -- it doesn't occupy any space.
However, in visibility:hidden
, it's as if you had just added opacity:0
to the element -- it occupies the same amount of space but just acts invisible.
The jQuery creators probably thought the former would be a better fit for .hide()
.