Css Is位置:相对于其父项的固定z索引';sz指数?

Css Is位置:相对于其父项的固定z索引';sz指数?,css,css-position,z-index,Css,Css Position,Z Index,我在相对定位的元素中有一个固定位置元素,就我而言,位置:相对元素不应该对位置:固定有任何影响(固定元素相对于窗口定位,对吗?) 但是,固定元素的z-index似乎是由其父元素继承的,以至于它的z-index不能高于其父元素的z-index 我希望我说的有道理?下面是我所说的HTML示例: .outer{ 位置:相对位置; z指数:2; } .内部{ 背景:#fff; 左:50px; 位置:固定; 顶部:40px; z指数:1000000; } .fade{ 背景:#555; 底部:0; 左:0

我在相对定位的元素中有一个固定位置元素,就我而言,
位置:相对
元素不应该对
位置:固定
有任何影响(固定元素相对于窗口定位,对吗?)

但是,固定元素的z-index似乎是由其父元素继承的,以至于它的z-index不能高于其父元素的z-index

我希望我说的有道理?下面是我所说的HTML示例:

.outer{
位置:相对位置;
z指数:2;
}
.内部{
背景:#fff;
左:50px;
位置:固定;
顶部:40px;
z指数:1000000;
}
.fade{
背景:#555;
底部:0;
左:0;
不透明度:0.5;
位置:固定;
右:0;
排名:0;
z指数:3;
}

测试

简言之,是的,如果定义了父元素的
z索引,则具有
位置:fixed
的元素受其父元素的z索引限制

很遗憾地通知你,但是你想要的目前是不可能的。获得所需效果的唯一方法是更改HTML或从
outer
中删除z索引

更改HTML选项

第一个选项是将
内部
移动到
外部
的外部,这将看起来很像

HTML修复程序的第二个选项是将
淡入
移动到
外部
的内部(甚至使用相同的CSS)-

第三个选项是将<代码>淡入<代码>外部<代码>的内部,然后也将<代码>内部<代码>置于<代码>淡入<代码>的内部,但这需要使用rgba颜色和不透明度-

更改CSS选项

使用与当前相同的HTML,最接近的方法是删除
outer
-的z索引。您可能认为您可以简单地将每个元素的z索引增加2,但这不起作用,因为子元素的z索引不能高于其父元素的z索引(如果父元素的z索引已设置)


解释 仔细想想,
fade
outer
处于同一级别。你要做的是让
淡入
保持在同一级别,但也让它保持在上面的级别,这是不可能的。这就像试图同时在一幢大楼的两层楼,这是不可能做到的


虽然你需要的与本文没有直接关系,但Philip Walton在上写了一篇很好的帖子,这对其他研究这个问题的人可能很有用。

可能与我不久前写的这些答案有关。。我敢肯定他们中的任何一个都会帮助你。。正如我在回答中所解释的,子元素不可能有比父元素更高的
z-index
。你的意思是?@Zeaklous谢谢,但这也不太符合它的需要,请看这个提琴:黑色背景/白色文本需要出现在淡入淡出的后面,而白色背景需要出现在它的前面,你的例子意味着两者都出现在模态前面。感谢@JoshC现在通读它们,看起来这个问题不会有一个简单的解决方案。不幸的是:(感谢你的回答(以及链接,肯定很快就会读到!).我想可能是这样的,我仍然认为固定元素继承其父级z索引是不直观的(对于所有密集用途而言,它是相对于窗口的),但我想如果规范是这样编写的,我将不得不处理它