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


71

display:none 表示该元素未呈现为DOM的一部分,因此直到display属性更改为其他内容时才加载该元素。

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

为什么jQuery为什么要使用display:none它的show / hide函数而不是在visibility:hidden和之间切换visibility:visible


1
@RyanErb您实际上是尝试阅读(并理解)问题还是只是匹配关键字?
TMS

Answers:


65

因为在中display:none,该元素出于所有目的不再存在-它不占用任何空间。但是,在中visibility:hidden,就好像您刚刚添加opacity:0到元素中一样-它占据相同的空间,但是只是不可见。

jQuery的创建者可能认为前者会更适合.hide()


因此,应该有一种在技术之间切换的方法,因为有时希望使对象占据执行计算所需的空间!
Iharob Al Asimi 2015年

18

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


但在某些情况下,可见性确实非常有用..就像您想要保持布局一致...并且UI不会在隐藏/显示时缩小
Usman Younas

10

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


6

可见性仅使元素不可见,但仍会占用屏幕空间。


1

Visibility:hidden只是使该元素不可见,而是将其加载到DOM中,因此会浪费加载时间。但是Display:none不加载元素。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.