gpt4 book ai didi

html - 为嵌套在固定容器内的绝对位置设置 Z-index

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:43 25 4
gpt4 key购买 nike

我有一个 header 标签,我为其设置了一个固定属性。在该 header 标签内,我有一个设置为绝对定位的导航标签。我遇到的问题是我似乎无法将 header 标签拉到导航标签前面。即使将 header 标签设置为 1000 的 z-index 并将 nav 标签设置为 500 的 z-index。我正在尝试做的事情可能吗?

<header> <-- fixed position
<section> logo here </section>
<nav data-nav="main-navigation"> <-- absolute position
<ul>
<li><a href="#" id="selected">HOME <div></div></a></li>
<li><a href="#">ABOUT US</a></li>
<li><a href="#">SERVICES</a></li>
<li><a href="#">GALLERIES</a></li>
<li><a href="#">BLOG</a></li>
<li><a href="#">CONTACT US</a></li>
</ul>
</nav>
</header>

这是一支代码笔来展示我正在尝试做的事情

CSS position codepen

最佳答案

使用position: fixed,子元素不能位于其父元素后面。诀窍是在父元素上使用伪元素,它将充当子元素的 sibling 。

根据您的描述,文本将位于标题颜色的后面。

header{
position: fixed;
width: 100%;
height: 100px;
}

header::before {
content: '';
position: absolute;
height: 100%;
z-index: 100;
width: 100%;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: red;
}

header nav{
position: fixed;
background-color: blue;
width: 50%;
height: 50vh;
top:0;
}

header ul{
list-style:none;
}

header a{
color: #fff;
}
<header>
<h1>HELLO</h1>

<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</header>

如果您希望文本显示在红色之上,则需要在 nav 上使用伪元素。如果您不需要 position: fixed,您可以在父级上使用任何其他定位并结合子级上的负 z-index:

header{
position: absolute;
width: 100%;
background-color: red;
height: 100px;
}

header nav{
position: absolute;
background-color: blue;
width: 50%;
height: 50vh;
top:0;
z-index: -1;
}

header ul{
list-style:none;
}

header a{
color: #fff;
}
<header>
<h1>HELLO</h1>

<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</header>

关于html - 为嵌套在固定容器内的绝对位置设置 Z-index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51637182/

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