html -::在具有负 z-index 的伪元素之前不显示在父元素后面

标签 html css

我发誓我已经这样做了一百次了,但是对于我来说,我无法弄清楚为什么我的 :before 伪元素的背景显示在文本后面而不是后面主播的背景。想法?

.button {
    background: tomato;
    padding: 10px 30px;
    margin: 20px 0;
    display: inline-block;
}

.button:hover {
    margin: 18px 0 22px 2px;
    position: relative;
    z-index: 2;
}

.button:hover:after {
    position: absolute;
    background: red;
    top:-2px;
    left: -2px;
    content: "";
    z-index: -10;
    width: 100%;
    height: 100%;
}
<a class="button" href="#">Meow</a>

此处示例:http://jsfiddle.net/cfree/hnKLr/

最佳答案

当您向元素添加 z-index 值时,您会创建一个新的堆叠上下文。该元素的每个子元素都将堆叠在它上面。

因此,当您想将一个元素放在其父元素后面时,只需不要在父元素上创建堆叠上下文即可。不过,您仍然需要使用负 z-index,因为父级的默认堆栈级别将为 0(在元素所在的任何上下文中)

关于html -::在具有负 z-index 的伪元素之前不显示在父元素后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19884031/

相关文章:

html - 为什么文本被推向圆圈的顶部

html - 如何在我自己的 HTML 中使用 WordPress Contact Form 7?

css - 在不知道文本颜色的情况下使链接颜色与文本颜色相同?

css - 用作 Sprite 的背景图像未加载

css - 如何在 CSS 中使网页居中

html - 固定位置div,显示在下一个div之上

html - Vue.js 类绑定(bind),在 css 类之间插入空白

javascript - Switch 语句 javascript 图像和文本

Jquery 图像 slider 在加载时无法正常工作

html - 显示页面上哪些元素正在影响其他元素的插件或工具?