Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS-z索引工作不正常_Css_Positioning_Z Index_Fixed_Absolute - Fatal编程技术网

CSS-z索引工作不正常

CSS-z索引工作不正常,css,positioning,z-index,fixed,absolute,Css,Positioning,Z Index,Fixed,Absolute,我在我的页面上使用z-index(-link不再需要-),但它不能正常工作:它不能将某些div置于所有其他div之上 通过单击左侧或右侧栏中的一个项目,您可以自己查看它。 然后,遮罩将淡入,但会显示其下方的消息框。 我已经尝试了很多,但我就是无法让消息框显示在所有其他消息框之上 我能做些什么来解决这个问题?[注意:下面的第二个问题!] 如果不想检查页面,则消息框位于其他一些div中: <div> <div> <div>message box</di

我在我的页面上使用z-index(-link不再需要-),但它不能正常工作:它不能将某些div置于所有其他div之上

通过单击左侧或右侧栏中的一个项目,您可以自己查看它。 然后,遮罩将淡入,但会显示其下方的消息框。 我已经尝试了很多,但我就是无法让消息框显示在所有其他消息框之上

我能做些什么来解决这个问题?[注意:下面的第二个问题!]

如果不想检查页面,则消息框位于其他一些div中:

<div>
 <div>
  <div>message box</div>
 </div>
</div>
我使用position:fixed,因为position:absolute在这里不是绝对的,div没有与身体对齐,但不知怎么的,它是其他的东西。
是否有方法重置定位并再次绝对定位它?

如果使用jquery,则可以在对象发生鼠标悬停事件时应用它,如:

<div id="modal" onmouseover="$(this).topZIndex();"></div>


如果从#leftbar中删除z-index,则可以解决问题。位置应该不重要,只要你有一个。

在我的记忆中,z索引问题通常来自于z索引元素的父元素没有定位的事实。应定位同级父级。

z索引仅在应用于具有相同定位类型的元素时有效。因此,如果一个元素通过绝对或其他位置离开dom,那么它的z索引将不会相对于dom中的其他元素,而只相对于具有相同定位类型的元素。哦,好的,因此,固定对象不能与绝对对象重叠?正确,因为根据z索引和dom,它们实际上并不相互关联,事实上,因为绝对对象不在dom中,固定对象甚至不知道它的顶部。好的。谢谢你!我已经在考虑使用jQuery做一个变通方法:从现在的消息框中获取内容。然后把它放在另一个div中,这个div是绝对的。我想那会有用的。是的,我以前遇到过z指数问题,元素有不同类型的位置。位置确实很重要,而且非常烦人:(不幸的是,页面的其余部分需要z-index:(也许你知道另一种解决方案?当你打开弹出窗口时,删除#leftbar z-index,当你关闭弹出窗口时,再次添加它。)另一个解决方案是使用3列布局,其中地图不是100%宽度,那么就不需要在列上使用z-index。是的,这是一个选项,但我希望侧栏覆盖div,不过感谢您的建议!嗯,它似乎不起作用……我已经在另一个jQuery脚本中包含了它,但现在它给了我启动窗口的错误没有定义…有什么线索要做吗?同样,位置需要“固定”,正如我上面所描述的,这也会起作用吗?我现在已经将行
放在另一个脚本上面,不再显示错误。但是,z-index问题仍然是一样的…div是在iframe中还是在另一个div中?是的,另一个div。但是我通过放置另一个div来固定它r div在我的页面上,#message,然后我将其html()更改为我要显示的消息的html()。一个简单的修复方法:)哦,很好,您还可以在需要消息时将div附加到页面,这样就可以始终在所有内容前面弹出消息。使用jQuery就像$(document.body)一样简单;,当然,您必须提供适当的css属性。只删除$('#message')。删除();
<div id="modal" onmouseover="$(this).topZIndex();"></div>
$(document).ready(function(){ $('#modal').css('position','absolute'); });