z-index元素覆盖动态生成的HTML

4
我有一个使用固定定位和 z-index 为 100 的 div,我希望它重叠在页面上的所有其他元素之上。我遇到了一些问题,jquery ui 标签页和动态生成的 HTML 内容似乎会使它的堆栈顺序更高,从而覆盖我的 div 元素。是否有一种方法始终将该 div 置于堆栈顺序的顶部?
我还尝试将 .ui-tabs 类的 z-index 排序设置为 0 (无效)。
2个回答

3
动态生成的HTML应该不会对z-index产生影响。我认为你在CSS方面可能犯了错误。Z-index属性可能比较棘手,但确保它正常工作的方法是在每个可能与其干扰的元素上声明position属性。这可能意味着您只需要在要确保重叠的元素上声明position:relative和z-index:0。
如果您可以发布结果HTML及影响它的CSS(即在动态生成的HTML加载到页面后),这也可能有所帮助。

我使用的插件有一个错误。 - chobo

1

你可能可以编写一些花哨的JS来自动提高z-index,但我怀疑这是不必要的。

更有可能的是HTML和CSS中存在错误。 链接到相关页面,或将源代码保存在pastebin.com并链接到该网址。

总的来说:

  1. 顺序和树级仍然很重要;即使它被单独定位,也要将超级元素直接放在<body>标记之后。
  2. 100的z-index不足以保证它具有最高值。 我见过站点使用199999(例如:div#control)或更高的z-index!
  3. 小心opacity设置。

参见:


我想我找到了问题所在。似乎当动态内容创建垂直滚动条时,这些滚动条会覆盖部分div。我不确定如何解决这个问题。我正在使用一个浏览器调整大小插件,因此当我稍微扩大页面时,位置被固定以处理滚动条。 - chobo
已解决。这是一个 jQuery 插件计算左侧位置值的问题,所以我将其更改为 right: 0,没有问题了。 - chobo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接