这可能吗?溢出-y:溢出-x可见:滚动/自动

时间:2012-07-10 09:13:33

标签: html css position overflow positioning

我们的团队存在一个无法解决的问题:/我们制作了自己的网格控件。当您单击列名称旁边的图标时,会出现弹出div(称为divFilter),您可以在那里设置过滤。每列可以有动态生成的div,因此我们可以在5个不同的位置使用f.e 5 divFilters。

它可以工作,但唯一的问题是当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,因为我们需要将它们放在列之下。

有任何想法或解决方法吗?是否可以在不使用Javascript的情况下仅使用CSS进行设置(用于动态更改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(弹出窗口)被隐藏,我们需要使用垂直滚动条来查看其全部内容。使用滚动条查看整个弹出窗口看起来不太好,所以我们希望黑色div显示在水平滚动条的上方/上方,但是因为我们的gridview(中间div)可以非常宽,所以我们不能只设置溢出:第一个div可见。正如我之前所说,将位置改为固定不会是解决方案。我几乎可以肯定它只能通过使用CSS来完成,但我想在弄乱JavaScript之前先问一下:)

1 个答案:

答案 0 :(得分:2)

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

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

相关问题