css - 当父元素上有动画时 Z-index 被否决

标签 css css-animations

我怎样才能正确解决这个问题,使蓝色层与下一行的红色元素重叠。

现在蓝色面板位于红色元素下方。

尝试了很多东西:

transform-style: preserve-3d;
transform: translate3d(0,0,0); /*on all elements*/

http://codepen.io/anon/pen/vNbQre

最佳答案

Z 索引总是相对于它们的父级。因此,您不能将 .subpanel 元素的 z-index 设置在其他 .item 元素之上,因为父元素彼此不在“之上”。

在此处阅读有关堆栈上下文的更多信息:https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context

然而,你可以做的是给 .item 元素一个 z-index,将第一个元素设置为最高等...这很容易实现,因为你正在使用 SCSS。

我在 SCSS 中更改了你的 for 循环

@for $i from 1 through 24 {
    .widthHelper:nth-child(#{$i}) .item {
        animation-delay: $i * 50ms;
        z-index: #{24 - $i + ($i % 4)};
    }
}

代码笔: http://codepen.io/grrtbrtr/pen/zveyBN

更新

更新了 z-index 计算以允许两侧重叠。 参见 Codepen了解更多详情。

如果元素向左增长,这会起作用。如果您希望 .subpanel 元素左右重叠,您需要将它们移出 .item 元素,请阅读上面关于 z 的链接-index 堆栈上下文,说明为什么在嵌套重叠元素时这不起作用。

关于css - 当父元素上有动画时 Z-index 被否决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33754174/

相关文章:

具有关键帧和变换的 CSS3 动画

javascript - 如何向 Bootstrap 折叠面板添加减号/加号图标

html - CSS 下拉导航

html - SVG 背景重复之间的空白

javascript - 如何在动画元素 onScroll 时获得准确的滚动位置

javascript - 每 3 秒重复一次动画

css - 位置在 Firefox 中不起作用?

html - 输入字段按钮的动态工具提示的最佳方式

css - Webkit CSS animation-fill-mode 似乎覆盖了 CSS 媒体查询

jquery - 单独缓动显示和隐藏操作