使一个 div 可见而另一个不可见

Posted

技术标签:

【中文标题】使一个 div 可见而另一个不可见【英文标题】:Make one div visible and another invisible 【发布时间】:2011-05-04 08:04:05 【问题描述】:

我有两个 div 标签,一个用于搜索,另一个用于结果。我需要的是,当单击提交按钮时,将返回结果并将其放入结果 div(带有 iframe)中,并且搜索 div 应该被隐藏并且结果 div 应该是可见的。

搜索 div 最初设置为可见(使用可见性变为可见),结果 div 最初设置为隐藏(使用可见性变为隐藏)。

另外,最初隐藏的div所在的页面底部有一个巨大的空白,那么我如何确保底部也没有多余的空白。

【问题讨论】:

【参考方案1】:

可以使用 style 的 display 属性。最初将结果部分样式设置为

style = "display:none"

那么 div 将不可见,也不会有任何空白。

在填充搜索结果后,使用 java 脚本更改显示属性,如

document.getElementById("someObj").style.display = "block"

使用java脚本可以让div不可见

document.getElementById("someObj").style.display = "none"

【讨论】:

【参考方案2】:

通过可见性使其不可见仍然会占用空间。而是尝试将显示设置为无以使其不可见,然后将显示设置为阻止以使其可见。

【讨论】:

如果我错了,请纠正我,但是对于 iFrame,您必须使其可见并显示,否则出于安全原因,某些浏览器不会加载内容。但是,您可以将其设置为 1x1px 和不透明度 0.01%。我以前使用跨站点上传小部件遇到过这个问题。【参考方案3】:

我不认为你真的想要 iframe,是吗?

除非您做一些奇怪的事情,否则您应该以 JSON 或(在最坏的情况下)XML 的形式返回结果,对吗?

对于您的白盒/额外空间问题,请尝试

style="display: none;"

而不是

style="visibility: hidden;"

【讨论】:

是的,其实我有,我不想要,但客户需要它【参考方案4】:

如果您想使用 display=block 它会使内容阅读器跳转,因此您可以将 left 属性设置为负值,而不是使用 display ,该值在要显示的 html 页面中不存在,但实际上它确实存在。

我希望你一定明白我的意思,如果我不能让你明白,你可以给我回消息。

【讨论】:

以上是关于使一个 div 可见而另一个不可见的主要内容,如果未能解决你的问题,请参考以下文章

通过悬停另一个元素使元素可见(没有:hover-property)

当鼠标悬停在 DIV 上时,如何使某些控件可见并与 DIV 重叠? [关闭]

如何使 div 上的滚动条仅在必要时可见?

使元素仅对 md 大小的设备可见

我可以使悬停不可见的元素吗?

willAnimateRotationToInterfaceOrientation 未在一个子视图中调用,而另一个子视图可见并已旋转