我使用可视性:隐藏来隐藏某些元素,但它们在隐藏时仍然占用页面空间。

我怎么能让它们在视觉上完全消失,就好像它们根本不在DOM中一样(但实际上没有从DOM中删除它们)?


当前回答

这个问题的答案是说使用display:none和display:block,但这对那些试图使用css过渡来显示和隐藏内容的人没有帮助。

这也让我抓狂,因为使用display会杀死任何css过渡。

一个解决方案是将这个添加到使用可见性的类中:

overflow:hidden

要做到这一点,确实取决于布局,但它应该在它所在的div中保持空内容。

其他回答

将可见性设置为隐藏,我所知道的唯一不占用空间的方法是使用position:absolute,然后设置顶部,左侧等参数。虽然不理想,但很有效。

显示:不显示是避免占用页面空白的最好方法

感谢这个问题。我想要的正好相反,即一个隐藏的div仍然应该占据它在浏览器上的空间。因此,我使用visibility: hidden而不是display: none。

$('#abc').css({"display":"none"});

这将隐藏内容,也不会留下空白。

看,与其使用可见性:隐藏;使用display: none;。第一个选项将隐藏,但仍然占用空间,第二个选项将隐藏,但不占用任何空间。