1

我们的团队有一个无法解决的问题:/ 我们制作了自己的网格控件。当您单击列名旁边的图标时,会出现弹出的 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 之前先问一下 :)

4

1 回答 1

2

我认为最安全的解决方案是min-height在网格上设置一个。

此外,听起来您的网格需要 javascript 进行过滤等。那么为什么不使用 javascript 来巧妙地计算流行的过滤器 div 高度中的最小高度因子。

于 2012-07-10T10:24:13.637 回答