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

时间:2011-06-18 03:17:41

标签: jquery html

在jQuery中我是否可以隐藏元素,但在隐藏元素时不更改DOM?我隐藏了某个元素但是当它被隐藏时,它下面的元素会向上移动。我不希望这种情况发生。我希望空间保持不变,但随意显示/隐藏的元素。

我可以这样做吗?

5 个答案:

答案 0 :(得分:279)

使用:

而不是hide()
css('visibility','hidden')

hide()display样式设置为none,这样就会从文档流中完全删除该元素,并使其不占用空间。

visibility:hidden保持空间不变。

答案 1 :(得分:38)

尝试将visibility设置为hidden

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

答案 2 :(得分:19)

display: none;会将其从内容流中删除,因此您会看到其他内容移动到留下的空白区域。 (display: block;将其带回流程中,将所有内容排除在外。)

visibility: hidden;会将其保留在占用空间的内容流中,但只是让它不可见。 (visibility: visible;将再次显示它。)

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

答案 3 :(得分:14)

在另一个答案中,注意到jQuery的fadeTo在完成时未设置display:none,因此也可能在此处提供解决方案,而不是使用fadeOut,例如:

jQuery, hide a div without disturbing the rest of the page

答案 4 :(得分:7)

在我看到opacity: 0技巧之前,我之前使用过 visibility: hidden

但在很多情况下opacity: 0会出现问题,因为可让您与元素进行互动,即使您无法看到它! (正如DeadPassive所指出的那样。)

通常这不是你想要的。但也许偶尔你会这样?