我的 HTML 页面中有一个 div。我根据某些条件显示此 div,但 div 显示在我指向鼠标光标的 HTML 元素后面。
我已经尝试了从 0 到 999999 的所有 z-index 值。谁能告诉我为什么会这样?
CSS 的 Z-INDEX 属性是否有最小值或最大值?
.divClass { 位置:绝对;左:25px;顶部:25px;宽度:320px;高度:300px; z 指数:1000; }
|
一些数据 |
我正在使用 jQuery 通过 <asp:hyperlink>
显示和隐藏带有 .divClass
onclick 的 div。
display: none
?
http://www.w3.org/TR/CSS21/visuren.html#z-index
'z-index' 值:自动 | <整数> |继承
http://www.w3.org/TR/CSS21/syndata.html#numbers
某些值类型可能具有整数值(由
所以基本上 CSS 标准中的 z-index 值没有限制,但我猜大多数浏览器在实践中将其限制为带符号的 32 位值(-2147483648 到 +2147483647)(64 会有点偏离顶部,而且它这些天使用小于 32 位的任何东西都没有意义)
我的测试表明 z-index: 2147483647
是最大值,在 OS X 的 FF 3.0.1 上进行了测试。我发现了一个整数溢出错误:如果您输入 z-index: 2147483648
(即 2147483647 + 1),则该元素将落后于所有其他元素.至少浏览器不会崩溃。
要吸取的教训是,您应该注意不要为 z-index
属性输入过大的值,因为它们会环绕。
根据经验,我认为正确的最大值 z-index
是 2147483647。
这取决于浏览器(尽管所有浏览器的最新版本应最大为 2147483638),超过最大值时浏览器的反应也是如此。
Z-Index 仅适用于应用了 position: relative;
或 position: absolute;
的元素。如果这不是问题,我们将需要查看示例页面以提供更多帮助。
编辑:好医生已经给出了最完整的解释,但快速版本是最小值是 0,因为它不能是负数和最大值 - 好吧,对于大多数设计,你永远不需要超过 10。
结论 最大 z-index 值为 2,147,483,647,超过此值转换为 2,147,483,647
Browser Maximum More Than Maximum Chrome >= 29 2,147,483,647 2,147,483,647 Opera >= 9 2,147,483,647 2,147,483,647 IE >= 6 2,147,483,647 2,147,483,647 Safari >= 4 2,147,483,647 2,147,483,647 Safari = 3 16,777,271 16,777,271 Firefox >= 4 2,147,483,647 2,147,483,647 Firefox = 3 2,147,483,647 0 Firefox = 2 2,147,483,647 Bug : 标签隐藏
在 BrowserStack 中测试的所有值。
我发现如果 z-index 不起作用,通常是因为它的父/兄弟没有指定的 z-index。
因此,如果您有:
<div id="1">
<a id="2" style="z-index:2"></a>
<div id="3" style="z-index:1"></div>
<button id="4"></button>
</div>
项目#3,甚至#4,可能会与#2 争夺点击/悬停空间,但如果将#1 设置为z-index 0,则z-index 的兄弟姐妹现在将它们放在独立的堆栈中,它们在同一个堆栈中并将正确地进行 z-index。
这有一个有用且相当人性化的描述:http://foohack.com/2007/10/top-5-css-mistakes/
position: relative;
或类似的东西。
上面的一位用户说:“嗯,对于大多数设计,你永远不需要超过 10。”
根据您的项目,您可能只需要 z-indexes 0-1 或 z-indexes 0-10000。您经常需要以较高的数字播放...特别是如果您使用灯箱查看器(9999 似乎是标准,如果您想超过他们的 z-index,您需要超过它!)
存在使用 calc()
为 z-index 写入最大值和最小值的超级简单方法。
最大值:
#some-id {
z-index: calc(9e999)
}
最小值:
#some-id {
z-index: calc(-9e999)
}
calc() 浏览器兼容性(
火狐 - 48+
野生动物园 - 7+
浏览器 - 9+
歌剧 - 18+
铬 - 31+
边缘 - 12+
虽然 INT_MAX
可能是最安全的选择,但 WebKit 显然在内部使用双精度数,因此允许 非常大 的数字(达到一定精度)。 LLONG_MAX
例如工作正常(至少在 64 位 Chromium 和 WebkitGTK 中),但将四舍五入为 9223372036854776000。
(尽管您应该仔细考虑您是否真的需要这么多 z 索引……)。
log base 2 (lg) = lg(16777271)
16777216
。16777271
因此需要 25 位。