我正在为我们的一个应用程序开发一个页面,该页面显示一个大型数据表以及一个下拉列表,其中包含对每个元素执行的选项。您可以在以下位置查看我的元素的简化版本(链接已删除,问题已解决)。
这是我的问题:每行上的下拉菜单都是绝对定位的,并且每行的 z-index 都是 600。悬停时,我将 z-index 增加到 900,这样当它打开时,它可以出现在位于其正下方的行中的下拉列表。我怀疑这个悬停状态在 IE7 中没有生效,并且下拉菜单总是出现在下一行的下拉菜单下方(仅在 IE7 中)。
接下来,我尝试将第一行的下拉菜单的 z 索引设置为 699,将第二行的下拉菜单的 z 索引设置为 698,将第三行的下拉菜单设置为 697,依此类推,这样每一行都会高于下面的一个它。这也不起作用,打开时下拉列表仍然出现在下一行的下拉列表下方。
我知道通过给父元素一个更高的 z-index 你可以修复 IE7 z-index 问题,而且我实际上确实在同一页面上的另一个菜单中使用了这个方法(但它不在这个演示页面中)它对于这个目的效果很好。然而,我尝试给这些下拉菜单的父级设置 z-index 999(当然,position:relative),但我仍然没有运气在页面上获得正确的堆叠顺序。这让我发疯,我真的需要完成这个元素,这是我们启动之前唯一不能正常工作的事情。真的很讨厌支持IE7,但它必须要做,而且我知道这必须是可能的。拜托,我真的很感激任何人能为我提供的任何帮助。我觉得我已经用尽了所有可能性,但希望有人知道如何实现这一点。
最佳答案
尝试为父元素的父元素提供 z 索引,然后继续返回,直到到达未正确显示的元素的共享父元素。
关于css - IE7 中的悬停下拉菜单 Z 索引问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8245661/