gpt4 book ai didi

html - 伪元素与子元素重叠

转载 作者:太空宇宙 更新时间:2023-11-04 02:22:57 27 4
gpt4 key购买 nike

Fiddle!

 .wrapper {
justify-content: center;
display: flex;
background: black;
}
.outer {
text-decoration: none;
display: inline-block;
position: relative;
background: #555;
}
.outer::before {
display: block;
content: "";
position: absolute;
top: 0;
width: 100%;
height: 5px;
background: orange;
transition: all 0.3s;
}
.outer:hover::before {
height: 100%;
}
.inner {
display: inline-block;
color: white;
padding: 20px;
}
<div class="wrapper">
<a class="outer" href="#">
<span class="inner">
Hover
</span>
</a>
</div>

你看着 fiddle 并将鼠标悬停在框上,你会看到::before 伪元素与文本重叠。我研究了半个小时,但没有找到答案。如果您能就如何使元素不与文本重叠提供一些帮助,我将不胜感激。我可以使用数据属性。

最佳答案

尝试将 position: relative 添加到 .inner 的 CSS 规则中。

.wrapper {
justify-content: center;
display: flex;
background: black;
}
.outer {
text-decoration: none;
display: inline-block;
position: relative;
background: #555;
}
.outer::before {
display: block;
content: "";
position: absolute;
top: 0;
width: 100%;
height: 5px;
background: orange;
transition: all 0.3s;
}
.outer:hover::before {
height: 100%;
}
.inner {
display: inline-block;
position: relative;
color: white;
padding: 20px;
}
<div class="wrapper">
<a class="outer" href="#">
<span class="inner">
Hover
</span>
</a>
</div>

我相信发生的事情是 .outer::before 上的 position: absolute 将它放在一个新的 stacking context 中。 ,并且 span.inner 卡在下面的另一个堆栈上下文中。将 position: relative 添加到 .inner 会将您的文本置于一个全新的堆叠上下文中,高于其他所有内容。

我也 fork 了你的 Fiddle here .

关于html - 伪元素与子元素重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37819125/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com