:after background-image 可以用来重叠下一个元素吗?
Can an :after background-image be used to overlap the next element?
我有一张图片,我想将其作为 :after 元素添加到导航栏。重点是 :after 将覆盖下一节的顶部(这是设计的一部分)。
:after 被设置为 position: absolute 和 top: 100% 并且它似乎消失在下一个元素下并且 z-index 没有帮助。当顶部设置为小于 100% 时,您可以在导航上方看到 :after 元素。
标记:
<nav>Contents</nav>
<div>Contents</div>
CSS:
nav {
width: 100%;
position: relative;
}
nav:after {
content: '';
width: 100%;
height: 66px;
background-image: url('image.png');
background-repeat: repeat-x;
position: absolute;
left: 0;
top: 100%;
}
No CSS for div yet...
提前致谢!
您只需将 Content div 上的 z-index 设置为低于伪元素的 z-index,但请注意 Content div 必须在任何其他元素上设置位置比 static...position:relative 通常就足够了。
或者,只需将伪元素的 z-index
设置为高于 div 的值(可能默认为 1)。
nav {
width: 100%;
position: relative;
height: 50px;
background: lightgreen;
}
nav:after {
content: '';
width: 100%;
height: 66px;
background: rgba(0, 0, 255, 0.5);
background-repeat: repeat-x;
position: absolute;
left: 0;
top: 100%;
z-index: 2;
}
div {
height: 260px;
position: relative;
background: rgba(255, 0, 0, 0.5);
}
<nav>Nav</nav>
<div>Contents</div>
我有一张图片,我想将其作为 :after 元素添加到导航栏。重点是 :after 将覆盖下一节的顶部(这是设计的一部分)。
:after 被设置为 position: absolute 和 top: 100% 并且它似乎消失在下一个元素下并且 z-index 没有帮助。当顶部设置为小于 100% 时,您可以在导航上方看到 :after 元素。
标记:
<nav>Contents</nav>
<div>Contents</div>
CSS:
nav {
width: 100%;
position: relative;
}
nav:after {
content: '';
width: 100%;
height: 66px;
background-image: url('image.png');
background-repeat: repeat-x;
position: absolute;
left: 0;
top: 100%;
}
No CSS for div yet...
提前致谢!
您只需将 Content div 上的 z-index 设置为低于伪元素的 z-index,但请注意 Content div 必须在任何其他元素上设置位置比 static...position:relative 通常就足够了。
或者,只需将伪元素的 z-index
设置为高于 div 的值(可能默认为 1)。
nav {
width: 100%;
position: relative;
height: 50px;
background: lightgreen;
}
nav:after {
content: '';
width: 100%;
height: 66px;
background: rgba(0, 0, 255, 0.5);
background-repeat: repeat-x;
position: absolute;
left: 0;
top: 100%;
z-index: 2;
}
div {
height: 260px;
position: relative;
background: rgba(255, 0, 0, 0.5);
}
<nav>Nav</nav>
<div>Contents</div>