我的HTML页面中有一个div。我根据某些条件显示这个div,但div显示在我指向鼠标光标的HTML元素后面。
我已经尝试了从0到999999的z-index的所有值。谁能告诉我为什么会这样?
CSS的Z-INDEX属性是否有任何最小值或最大值?
.divClass {
position: absolute;
left: 25px;
top: 25px;
width: 320px;
height: 300px;
z-index: 1000;
}
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td>
<asp:HyperLink ID="lnkProgram" runat="server"></asp:HyperLink>
</td>
</tr>
<tr>
<td>
<div class="divClass">
Some Data
</div>
</td>
</tr>
</table>
我使用jQuery通过.divClass
使用<asp:hyperlink>
onclick显示和隐藏div。
答案 0 :(得分:318)
┌──────────────────────┬───────────────────┬──────────────────────────────────┐
│ Browser │ Max z─index value │ When exceeded, value changes to: │
╞══════════════════════╪═══════════════════╪══════════════════════════════════╡
│ Firefox 0 - 2 │ 2147483647 │ element disappears │
├──────────────────────┼───────────────────┼──────────────────────────────────┤
│ Firefox 3 │ 2147483647 │ 0 │
├──────────────────────┼───────────────────┼──────────────────────────────────┤
│ Firefox 4+ │ 2147483647 │ 2147483647 │
├──────────────────────┼───────────────────┼──────────────────────────────────┤
│ Safari 0 - 3 │ 16777271 │ 16777271 │
├──────────────────────┼───────────────────┼──────────────────────────────────┤
│ Safari 4+ │ 2147483647 │ 2147483647 │
├──────────────────────┼───────────────────┼──────────────────────────────────┤
│ Internet Explorer 6+ │ 2147483647 │ 2147483647 │
├──────────────────────┼───────────────────┼──────────────────────────────────┤
│ Chrome 29+ │ 2147483647 │ 2147483647 │
├──────────────────────┼───────────────────┼──────────────────────────────────┤
│ Opera 9+ │ 2147483647 │ 2147483647 │
└──────────────────────┴───────────────────┴──────────────────────────────────┘
答案 1 :(得分:296)
http://www.w3.org/TR/CSS21/visuren.html#z-index
<强> '的z-index'强>
价值:自动| &LT;整数&GT; |继承
http://www.w3.org/TR/CSS21/syndata.html#numbers
某些值类型可能包含整数 值(由&lt;整数&gt;表示)或 实数值(表示为 &LT;数&GT)。实数和 整数以十进制指定 只有符号。 &lt;整数&gt; 由一个或多个数字“0”组成 “9”。 A&lt; number&gt;可以是一个 &lt; integer&gt;,或者它可以是零或 更多数字后跟一个点(。) 后跟一个或多个数字。都 整数和实数可能是 前面加上“ - ”或“+”表示 标志。 -0相当于0并且是 不是负数。
请注意许多允许的属性 整数或实数作为值 实际上将值限制为某些值 范围,通常为非负值。
所以基本上CSS标准中的z-index值没有限制,但我猜大多数浏览器在实践中将它限制为带符号的32位值(-2147483648到+2147483647)(64会有点偏离顶部,这些天使用少于32位的东西是没有意义的)
答案 2 :(得分:150)
我的测试显示z-index: 2147483647
是最大值,在OS 3.0的FF 3.0.1上测试过。
我发现了一个整数溢出错误:如果你输入z-index: 2147483648
(这是2147483647 + 1),该元素就会落后于所有其他元素。至少浏览器不会崩溃。
要吸取的教训是,您应该注意为z-index
属性输入过大的值,因为它们会缠绕在一起。
答案 3 :(得分:22)
答案 4 :(得分:21)
根据经验,我认为正确的最大z-index
是2147483638。
答案 5 :(得分:21)
这取决于浏览器(尽管所有浏览器的最新版本最大值应为2147483638),浏览器在超出最大值时的反应也是如此。
答案 6 :(得分:21)
这是32位整数的最大值:2147483647
另见文档:https://www.w3.org/TR/CSS22/visuren.html#z-index (允许使用负数)
答案 7 :(得分:12)
Z-Index仅适用于已应用position: relative;
或position: absolute;
的元素。如果这不是问题,我们需要看一个示例页面更有帮助。
答案 8 :(得分:5)
上面的一位用户说“嗯,对于大多数设计,你永远不需要超过10。”
根据您的项目,您可能只需要z-index 0-1或z-indexes 0-10000。你经常需要玩更高的数字...特别是如果你正在使用灯箱观众(9999似乎是标准,如果你想要超越他们的z-index,你需要超过它!)< / p>
答案 9 :(得分:5)
我发现,如果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/
答案 10 :(得分:0)
虽然INT_MAX
可能是最安全的赌注,但WebKit显然在内部使用双打,因此允许非常大的数字(达到一定的精度)。 LLONG_MAX
例如{}工作正常(至少在64位Chromium和WebkitGTK中),但将四舍五入到9223372036854776000。
(虽然你应该仔细考虑是否真的,真的需要这么多的z索引......)。
答案 11 :(得分:0)
一个奇怪的事实,如果您使用像Firebug这样的编辑器并在z-index
中放入一个大数字,浏览器将用最大值替换最大插值
答案 12 :(得分:0)
[Chrome >= 29, Opera >= 9, IE >= 6, Safari >= 4, Firefox >=4]
z-index的最大值是2,147,483,647,大于此值将转换为2,147,483,647