问题描述

我的 HTML 页面中有一个 DIV 。我根据一些条件显示这个 DIV 。但 DIV 正在显示任何指向鼠标光标的 HTML 元素。我已尝试所有的值为 0 – 999999 的 Z-INDEX 属性。任何人都可以告诉我为什么会发生这种情况? CSS 的 Z-INDEX 属性是否有最小值或最大值?例如,以下 HTML 在 ascx 控件中定义:

<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>

CSS 是:

.divClass
{
     position: absolute; 
     left: 25px; 
     top: 25px; 
     width: 320px;
     height: 300px; 
     z-index: 1000; 
     display: none;
}

我正在主页上使用+ Jquery 显示和隐藏特定的 DIV for Hyperlink 。

最佳解决方案

http://www.w3.org/TR/CSS21/visuren.html#z-index

‘z-index’

Value: auto | <integer> | inherit

http://www.w3.org/TR/CSS21/syndata.html#numbers

Some value types may have integer values (denoted by <integer>) or real number values (denoted by <number>). Real numbers and integers are specified in decimal notation only. An <integer> consists of one or more digits “0” to “9”. A <number> can either be an <integer>, or it can be zero or more digits followed by a dot (.) followed by one or more digits. Both integers and real numbers may be preceded by a “-” or “+” to indicate the sign. -0 is equivalent to 0 and is not a negative number.

Note that many properties that allow an integer or real number as a value actually restrict the value to some range, often to a non-negative value.

所以基本上对 CSS 标准中的 z-index 值没有任何限制,但是我猜想大多数浏览器在实践中将其限制为 32 位值 (-2147483648 到+2147483647)(64 位将是顶部的一点,有意义的是,使用这些天数少于 32 位的东西)

次佳解决方案

┌──────────────────────┬───────────────────┬──────────────────────────────────┐
│ 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                       │
└──────────────────────┴───────────────────┴──────────────────────────────────┘

第三种解决方案

我的测试显示,z-index: 2147483647 是最大值,在 OS X.1.1 上测试了 OS X. 我发现了一个整数溢出错误:如果你键入 z-index: 2147483648(这是 2147483647 + 1),元素就会落后于所有其他元素。至少浏览器不会崩溃。

要学习的是,您应该注意为 z-index 属性输入太大的值,因为它们环绕。

第四种方案

这取决于浏览器 (尽管所有浏览器的最新版本应该最大为 2147483638),浏览器的反应超出最大值时也是如此。

http://www.puidokas.com/max-z-index/

第五种方案

没有经验,我认为正确的最大 z-index 是 2147483638 。

第六种方案

它是 32 位整数的最大值:2147483647

另请参阅文档:https://www.w3.org/TR/CSS22/visuren.html#z-index(允许负数)

第七种方案

Z-index 的最小值为 0; 最大值取决于浏览器类型。

第八种方案

Z-Index 仅适用于应用了 position: relative;position: absolute; 的元素。如果这不是问题,我们需要看到一个示例页面更有帮助。

编辑:好医生已经做出了最充分的解释,但是快速版本是最小值是 0,因为它不能是负数,最大限度是 – 对于大多数设计,你永远不需要超过 10 。

第九种方案

我发现,如果 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」 。

根据您的项目,您可能只需要 z-indexes 0-1 或 z-indexes 0-10000 。你经常需要玩更高的数字… 特别是如果你正在使用灯箱观众 (9999 似乎是标准的,如果你想要顶部他们的 z-index,你将需要超越!)

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛