13

看:

http://jsfiddle.net/Kq2PY/

div 与 z-index 5 是相对的, :after 与 z-index 2 是绝对的。

那么 :after 不应该在 div 后面吗?

div{
    position:relative;
    z-index: 5;
    background: #000;
    padding: 10px;
}    

div:after{
    content: '';
    position: absolute;
    z-index: 2;            /*  <= not working:( */
    background: #3d3;
    left: 20px;
    top: 20px; 
    width: 30px;
    height: 30px;
}    
<div>erferf</div>

4

2 回答 2

37

您必须给伪元素一个负 z-index 以使其落后于其父级,并删除父级上的 z-index。 http://jsfiddle.net/jklm313/Kq2PY/4/

div{
    position:relative;
    background: #000;
    padding: 10px;
}    

div:after{
    content: '';
    position: absolute;
    z-index: -1;            /*  <= not working:( */
    background: #3d3;
    left: 20px;
    top: 20px; 
    width: 30px;
    height: 30px;
}    
<div>erferf</div>

于 2012-09-17T16:06:30.707 回答
6
div { z-index: 1; }

div::after { z-index: -1;}
于 2020-02-10T08:32:19.907 回答