我们的团队有一个无法解决的问题:/ 我们制作了自己的网格控件。当您单击列名旁边的图标时,会出现弹出的 div(称为 divFilter),您可以在那里设置过滤。每列可以动态生成 div,因此我们可以在 5 个不同的地方拥有 5 个 divFilter。
它可以工作,但唯一的问题是,当 Grid 上有例如 1-2 条记录时,弹出的 div 将显示在父 div 的水平滚动下。我们已经尝试过使用 z-index,但看起来这行不通。我们可以设置溢出:可见,但我们还需要水平滚动(我们的网格最多有 50 列)。我们认为我们可以通过购买设置 overflow-y visible 和 overflow-x:scroll 来解决它,但根据我们的测试和该页面:http ://www.brunildo.org/test/Overflowxy2.html这是不可能的(对于IE7,IE8)。
我还发现了这个类似的问题CSS overflow-y:visible, overflow-x:scroll,但是我们的弹出 div 必须是 position:absolute,因为我们需要将它们定位在列下。
有什么想法或解决方法吗?是否可以仅使用 CSS 设置而不使用 Javascript(用于动态更改 gridview 高度等)。
谢谢!!
添加:
好的,我在 jsFiddle 上为我的问题创建了非常简化的代码片段:http: //jsfiddle.net/XL5JD/
<div id="divOuter" style="position: relative; overflow: scroll; height: 100%;">
<div id="divGv" style="height:90px;width:3339px;background-color:#7A8B8B">
<div id="divFilter" style="position:absolute;z-index:20px;background-color:#000000;width:30px;height:300px;margin:10px">
</div>
</div>
</div>
如您所见,黑色 div(pop-up) 是隐藏的,我们需要使用垂直滚动条来查看其全部内容。使用滚动条来查看整个弹出窗口看起来不太好,所以我们希望黑色 div 显示在水平滚动条上方/上方,但是因为我们的 gridview(中间 div)可能非常宽,我们不能只设置溢出:对于第一个 div 可见。正如我之前所说,将位置更改为固定不是解决方案。我几乎可以肯定它不能仅通过使用 CSS 来完成,但我想在搞砸 JavaScript 之前先问一下 :)