如何使样式为内联块的 link 的背景不出现在其后续 link 兄弟姐妹的后面?
How to make the background of a link styled as inline-block not appear behind its following link siblings?
我有几个 links 被缩放并且它们的背景随着鼠标悬停时的 1s 过渡而改变。当悬停第一个 link 时,它被缩放得如此之大以至于它悬停在其他 links 上并且其他 links 在它下面可见。第二个 link 悬停时,不会出现在第一个 link 下方,而是出现在第三个 link 下方。第三个 link 没有出现在任何其他 link.
下
a {
color: lightblue;
transform: scale(1);
transition: all 1s;
display: inline-block;
background-color: transparent;
}
a:hover {
transform: scale(5);
background-color: yellow;
}
<div class="page-footer">
<a href="">ABCD</a> /
<a href="">EFGH</a> /
<a href="">IJKL</a>
</div>
我在 Chrome 和 Firefox 上都看到了这种行为。我不明白为什么它会这样工作,我希望 links 的背景表现正常。
谢谢。
这是因为顺序,在正常流程中,唯一存在的堆栈上下文是 <html>
,一个元素将被标记中紧随其后的下一个元素覆盖。
使用 z-index,某些元素的渲染顺序会受到影响,但是 z-index 不会有任何影响,因为 z-index 仅适用于定位元素。
定位元素:是位置值不是static的元素
我们可以使用 position:relative
因为它的行为类似于静态。
a {
color: lightblue;
transform: scale(1);
transition: all 1s;
display: inline-block;
background-color: transparent;
z-index: 1;
}
a:hover {
transform: scale(5);
background-color: yellow;
position: relative;
z-index: 2; /* higher than other <a> */
}
/* Just to center Not needed */
div {
display: table;
margin: 5em auto;
}
<div class="page-footer">
<a href="">ABCD</a> /
<a href="">EFGH</a> /
<a href="">IJKL</a>
</div>
我有几个 links 被缩放并且它们的背景随着鼠标悬停时的 1s 过渡而改变。当悬停第一个 link 时,它被缩放得如此之大以至于它悬停在其他 links 上并且其他 links 在它下面可见。第二个 link 悬停时,不会出现在第一个 link 下方,而是出现在第三个 link 下方。第三个 link 没有出现在任何其他 link.
下a {
color: lightblue;
transform: scale(1);
transition: all 1s;
display: inline-block;
background-color: transparent;
}
a:hover {
transform: scale(5);
background-color: yellow;
}
<div class="page-footer">
<a href="">ABCD</a> /
<a href="">EFGH</a> /
<a href="">IJKL</a>
</div>
我在 Chrome 和 Firefox 上都看到了这种行为。我不明白为什么它会这样工作,我希望 links 的背景表现正常。
谢谢。
这是因为顺序,在正常流程中,唯一存在的堆栈上下文是 <html>
,一个元素将被标记中紧随其后的下一个元素覆盖。
使用 z-index,某些元素的渲染顺序会受到影响,但是 z-index 不会有任何影响,因为 z-index 仅适用于定位元素。
定位元素:是位置值不是static的元素
我们可以使用 position:relative
因为它的行为类似于静态。
a {
color: lightblue;
transform: scale(1);
transition: all 1s;
display: inline-block;
background-color: transparent;
z-index: 1;
}
a:hover {
transform: scale(5);
background-color: yellow;
position: relative;
z-index: 2; /* higher than other <a> */
}
/* Just to center Not needed */
div {
display: table;
margin: 5em auto;
}
<div class="page-footer">
<a href="">ABCD</a> /
<a href="">EFGH</a> /
<a href="">IJKL</a>
</div>