20

我有一个案例,第 3 方广告正在通过我的模态窗口实现流血。我想尽可能高地提高模态叠加层的 z-index,这样广告就不会显示在它上面。z-index 值有限制吗?我确定是否存在因浏览器而异。有人知道吗?

4

4 回答 4

18

大多数浏览器支持的最大 zIndex 值为 2147483647 (2^31-1),但 Opera 9.2 不接受大于 2147483583 的值;他们在 9.5 版中修复了它。

于 2009-03-06T07:34:58.537 回答
13

请记住,这z-index不适用于全局,但只能在“堆叠上下文”(在 CSS 中难以理解的定义)内起作用,并且如果广告建立了自己的堆叠上下文,那么z-index您在其他地方设置的值可能根本不会影响它.

然而,更有可能是“窗口化”Flash(没有wmode=transparent属性的对象)的问题,浏览器在所有内容之上呈现,就好像浏览器的 window 上方的窗口一样。在这种情况下z-index根本没有帮助。您需要强制 ad[-provider] 使用wmode=transparent或使用一些带有 iframe 的疯狂黑客。

于 2008-10-22T22:35:03.157 回答
10

并非如此,但您可能会考虑系统的自然限制,例如 int 范围。我可能会保持在 32,767 以下。在处理类似问题时,我在 javascript 中肯定超过了这一点,并且在我当时担心的主要浏览器和平台上没有遇到任何问题。

对于第 3 方广告和重叠式广告,确保Flash 嵌入上的wmode="transparent"是同样的常见问题。另外值得注意的是,IE 有一个堆叠 z-index 的错误,所以如果你没有看到成功,请确保你的头没有撞到墙上*。

我总是喜欢保持某种约定,而不是使用任意数字。例如,也许我的css 中的所有内容都介于 0 和 10 之间。也许 dhtml 的东西发生在 100 的位置值中,对于任何给定的模块都有一个有意义的 z-index。

*旁注:具体来说,IE 错误是 IE 将文档流的新实例视为 z-index 的新堆叠上下文。当通常继承您的 z-index 的子节点被呈现为它自己的定位上下文时,您需要确保您的 z-indexes 不会在 DOM 层次结构中丢失。

于 2008-10-22T22:22:35.943 回答
3

引自http://techtrouts.com/is-there-a-limit-to-the-css-z-index-property/

理论上 z-index 属性应该是无限的,或者至少在 int 类型范围内,具体取决于操作系统和浏览器。但是,为了避免浏览器错误,您应该将 z-index 值限制为 +/- 32767 。

于 2008-11-01T22:40:02.553 回答