给定 div 中的元素如何具有
比某物更高的 z 阶
放在那个div之后?这只是
忽略嵌套的 div 层次结构?
Z-index 仅修改显示元素的“图层”(想象一下 Photoshop)。在结构上,盒子模型没有改变。从视觉上看,它似乎是,但前提是元素的位置已被修改(通过 CSS),以便 z-index 实际上意味着什么。 Here's an example;注意B 是如何出现在A 和C 事件上方的,尽管C 具有最大的z-index。
要修改元素的z-index,相对于包含它们的容器div,您必须确保容器中最小的z-index大于容器外部的最大z-index容器。然后,您调整其他 z-indexes 以抵消它们。此函数(使用 jQuery)从传递的元素中获取具有最大 z-index 的元素:
function getTopElement(elems){
// Store the greates z-index that has been seen so far
var maxZ = 0;
// Stores a reference to the element that has the greatest z-index so far
var maxElem;
elems.each(function(){
var z = parseInt($(this).css("z-index"), 10);
// Ignore z-index of auto
if (!isNaN(z)){
if (parseInt($(this).css("z-index"), 10) > maxZ) {
maxElem = $(this);
maxZ = parseInt($(this).css("z-index"), 10);
alert (maxZ);
}
}
});
return maxElem;
};
用途:
var topDiv = getTopElement($("div"));
var topZIndex = topDiv.css("z-index");
这应该让你开始。
编辑:
要填写缺少的z-indexes,请使用以下代码:
var elements = $("div");
var newZ = parseInt(getTopElement(elements).css("z-index"), 10);
elements.each(function(){
if (isNaN(parseInt($(this).css("z-index"),10))){
$(this).css("z-index", ++newZ);
}
});
它的作用是将具有z-index 或auto 的元素更改为集合中最大的z-index (elements) 的加一;
要明白我的意思,check out this demo。