为什么jQuery显示/隐藏使用display:none而不是visibility:hidden?

display:none表示该元素不是作为DOM的一部分呈现的,所以直到display属性更改为其他元素时才加载该元素。

visibility:hidden加载元素,但不显示它。

为什么jQuery使用display:none作为显示/隐藏function,而不是在visibility:hidden之间切换visibility:hiddenvisibility:visible

因为在display:none ,为了所有目的,元素不再存在 – 它不占用任何空间。 然而,在visibility:hidden ,就好像你刚刚添加opacity:0元素 – 它占用相同数量的空间,但只是不可见的。

jQuery创build者可能认为前者更适合.hide()

visibility: hidden使元素不可见,但不会将其从页面布局中移除。 它留下一个空的盒子里的元素。 display: none从布局中删除它,所以它不占用页面上的任何空间,这通常是人们在隐藏某些东西时想要的。

可见性:隐藏使得元素不可见,仍然在页面上使用空间。 显示:没有使元素没有空间,完全消失,而它仍然存在于DOM中。

可见性只是使元素不可见,但它仍然占用屏幕上的空间。

Visibility:hidden只是使元素不可见,但它是在DOM中加载,所以它消耗加载时间。 但Display:none不加载元素。