The_stacking_context这篇文章中给出了一个示例,如下图
可以看出,尽管 div#5 的 z-index = 1,div#2 的 z-index = 2,但是 div#5 是在 div#2 之上的,这是因为 div#5 是 div#3 的子元素,而 div#3 是在 div#2 之上,因此说 z-index 的值不是绝对值,是相对值。所以有时候设置 z-index 不生效可能是因为父级元素的 z-index 设置的不对。
例子的下面文章给出了如何判断各个 div 元素的实际层级关系,给出了很实用的办法。因为 div1, div2, div3 属于同一个 root stacking context, 而 div4, div5, div6 属于同一个 div3 的 stacking context,所以他们的关系如下:
div2: 2 div3: 4 div5: 4.1 div6: 4.3 div4: 4.6 div1: 5
通过这种方式可以很容易判断每个 div 所处的实际 z 轴位置。