jQuery隐藏元素,同时保留页面布局的空间

有没有一种方法可以隐藏一个元素,但不能改变它隐藏的DOM的jQuery? 我隐藏了某个元素,但隐藏时,它下面的元素向上移动。 我不希望这样的事情发生。 我想要空间保持不变,但要显示/隐藏的要素。

我可以这样做吗?

而不是hide() ,使用:

 css('visibility','hidden') 

hide()display样式设置为none ,从而将文档stream中的元素完全删除并使其不占用空间。

visibility:hidden保持原样。

尝试设置hiddenvisibility

 $("#id").css("visibility", "hidden"); 

display: none; 将把它从内容stream中拿出来,这样你会看到你的其他内容进入留下的空白空间。 ( display: block;将其带回推动一切的stream程)。

visibility: hidden; 将保持在占用空间的内容stream中,而只是使其不可见。 ( visibility: visible;将再次显示。)

如果您希望内容stream保持不变,则需要使用visibility

在另一个答案中指出,jQuery的fadeTo没有设置display:none ,所以也可以在这里提供一个解决scheme,而不是使用fadeOut例如:

jQuery,隐藏一个div而不会干扰页面的其余部分

我使用opacity:0之前,我看到这个visibility:hidden技巧。

我不知道有什么好处,实际上渲染速度可能会比较慢。 但无论如何这是一个替代scheme。

一个显着的区别是,你不能交互(如焦点或点击)具有visibility:hidden的元素visibility:hidden但用户可以与具有opacity:0的元素进行交互 opacity:0 。 这可能是一个隐藏元素的缺点。 (由DeadPassive指出)