ron*_*yrr 6 css z-index behind
:after是否有可能在其父元素的背景后面 获取 CSS 伪元素?
的背景:after包含与父元素的背景相同的尺寸。所以目前看起来是这样的:
但我希望红色背景 ( :after) 位于父元素后面。所以我添加了position: relative父元素和absolute伪元素。
试图存档这个我使用了这段代码:
.btn {
position: relative;
display: inline-block;
padding: .8rem 1rem;
font-size: 1rem;
background: #000;
}
.btn:after {
position: absolute;
bottom: -0.3rem; right: -0.3rem;
z-index: -1;
width: 100%; height: 100%;
content:'';
background: red;
}Run Code Online (Sandbox Code Playgroud)
<a href="" class="btn">
This is my button
</a>Run Code Online (Sandbox Code Playgroud)
奇怪的是上面的代码片段就像魅力一样。但在我的实时示例中,显示的代码与本主题中的图像完全相同。有人知道实时站点出了什么问题吗?
如果将其父级包裹在另一个元素内,则可以将该元素放置在其父级后面。:after发生的情况是:after忽略其父级的定位,但它将应用层次结构中下一个父级的定位。
超文本标记语言
<div class="wrap">
<a href="" class="btn blue">
<span>Bekijk op facebook</span>
<span class="fa fa-arrow-circle-right"></span>
</a>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.wrap{
position:relative;
z-index:1;
}
.btn{
/* remove position:relative; */
}
Run Code Online (Sandbox Code Playgroud)
但是,蒂莫西姆回答中的 box-shadow 解决方案更适合这种特定情况,不确定它如何适合您网站的其余部分。
在您的网站中,您有以下 CSS 规则:
.btn {
position: relative;
z-index: 1;
display: inline-block;
padding: .8rem 1rem;
font-size: 1rem;
background: #000;
-webkit-transition: all 0.2s linear;
-moz-transition: all 0.2s linear;
-o-transition: all 0.2s linear;
transition: all 0.2s linear;
}
Run Code Online (Sandbox Code Playgroud)
如果删除该z-index: 1属性,您的 CSS 将正常工作。此属性不在您上面提供的示例代码片段中。
我在 Firefox 中使用 CSS 检查器进行了尝试,这似乎解决了这个问题。