带有伪元素之前的 Z 索引
我创建了一个带有 before-pseudo 元素的“header”元素。伪元素必须位于父元素后面。 一切都工作得很好,直到我给我的“标题”一个 z 索引。
我想要的:前景中的黄色“标题”,背景中的红色伪元素以及黄色“标题”元素上的简单 z 索引 30。
header {
background: yellow;
position:relative;
height: 100px;
width: 100px;
z-index:30; /*This is the problem*/
}
header::before {
content:"Hide you behind!";
background: red;
position:absolute;
height: 100px;
width: 100px;
top:25px;
left:25px;
z-index:-1;
}
您可以在此链接(http://jsfiddle.net/tZKDy/)上测试我的问题,当您设置/时您会看到问题删除“header”元素上的 z 索引。
I've created a 'header' element with a before-pseudo element. the pseudeo element must be behind the parent element.
Everything works great till the moment I give my 'header' a z-index.
What I want: The yellow 'header' on the foreground, the red pseudo-element in the background and a simple z-index of 30 on the yellow 'header' element.
header {
background: yellow;
position:relative;
height: 100px;
width: 100px;
z-index:30; /*This is the problem*/
}
header::before {
content:"Hide you behind!";
background: red;
position:absolute;
height: 100px;
width: 100px;
top:25px;
left:25px;
z-index:-1;
}
You can test my problem on this link (http://jsfiddle.net/tZKDy/) and you see the problem when you set/remove the z-index on de 'header' element.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
::before 伪元素放置在 header 元素内。
CSS 规范:
设置 header 元素的 z-index 创建一个新的 Stacking Context,因此您创建的新伪元素不能浮动在 header 元素后面,因为它必须位于 Stacking Context 之外。
我建议您只需在标头元素之前添加另一个元素,以便默认情况下它可以正确堆叠。 示例。
The ::before pseudo-element is placed inside the header element.
CSS Spec:
Setting the z-index for the header element creates a new Stacking Context, so the new pseudo element you created can not float behind the header element, because it would have to go outside that Stacking Context.
I suggest that you simply precede the header element by another element, so it stacks correctly by default. Example.
我使用了 z-index:-1 (在此处输入链接描述)
I used z-index:-1 (enter link description here)