这是我不太了解的关于 z-index 和 css 伪元素 ::before / ::after 的行为。
在这个 jsfiddle 上有说明:http: //jsfiddle.net/jgoyon/T6QCf/
我创建了一个定位框并使用 ::after 伪元素(也定位)添加了内容。
- 如果我将 z-index 设置为 ::after 伪元素,一切正常,我可以通过使用 z-index 将其定位在父元素之上或之下
#no-z-index {
background:lightblue;
width:100px;
height:100px;
position:relative;
}
#no-z-index:after {
content: 'z-index -1';
width:50px;
height:50px;
background:yellow;
position:absolute;
z-index:-1; /* z-index in question */
top:70px;
left:70px;
}
- 如果我做同样的事情并设置父级的 z-index,它就不再起作用了。
#z-index {
background:lightblue;
left:200px;
width:100px;
height:100px;
position:relative;
z-index:0; /* parent z-index */
}
#z-index:after {
content: 'z-index -1';
width:50px;
height:50px;
background:yellow;
position:absolute;
z-index:-1; /* z-index in question */
top:70px;
left:70px;
}
这是预期的行为吗?