html - 伪 :after not placed under parent element 的 z-index

标签 html css z-index

我试图将一个元素夹在“:before”和“:after”伪元素之间,但是尽管在“:after”上将 z-index 设置为 -1,它仍然出现在父元素之上。

在下面的示例中,红色应该在顶部,绿色在中间,蓝色在底部。

请参阅此 fiddle :https://jsfiddle.net/zL1yz86f/2/

HTML:

<div></div> 

CSS:

div {
        background: green;
        position: relative;
        z-index: 10;
        width: 30%;
        height: 200px;
        float: left;
        margin-right: 3%}

    div:before {
        content: "";
        height: 0;
        width: 0;
        border-top: 200px solid red;
        border-right: 200px solid transparent;
        position: absolute;
        top: -20px;
        left: -10px;
        z-index: 20;
    }

    div:after {
        content: "";
        height: 200px;
        width: 200px;
        background: blue;
        position: absolute;
        top: -20px;
        left: -10px;
        z-index: -1;
    }

最佳答案

移除父级的z-index

这将使伪元素拥有自己的堆叠上下文(因为您已经应用了 position: absolute)。这是更新的 fiddle .希望这对您有所帮助!

关于html - 伪 :after not placed under parent element 的 z-index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31615961/

相关文章:

html - 如何在 Angularjs 中对 [Array] 值元素进行排序?

html - 无法使用 margin auto 将我的导航栏居中

javascript - WebRTC 视频限制不起作用

javascript - 如何圆形和调整照片大小并将其设置为 Google Map API V3 的自定义标记

css - 将相对 DIV 堆叠在绝对 DIV 上

html - 如何使 div 的宽度超出父级的宽度?

html - 如何让名字和姓氏标签在相应的输入表单下对齐?

css - 如何在两端创建具有相同 css 渐变的直线?

html - 当我设置父级的 z-index 时重叠不起作用

css - 如何使用CSS在按钮中显示文本