我正在尝试用 html 构建一个 ui。
- 导航栏应位于顶部
- 导航栏下方的一些视频和其他内容应在视频上滚动(目前为棕色框)。
- 天蓝色框(用于侧面导航)应停止在导航框正下方,粉红色框(内容框)应继续滚动。
问题:
- 粘性导航框在滚动一段时间后向上滚动
- 天蓝色框不会停在导航框下方。 请查看 codepen 并帮助我...... html
body,
html {
height: 100%;
width: 100%;
margin: 0;
}
.container {
display: flex;
position: relative;
top: 400px;
border-top: 4px solid black;
}
.box1 {
/* height:500px; */
position: sticky;
top: 50px;
width: 40%;
background-color: aqua;
border: 2px solid grey;
}
.box2 {
height: 1000px;
width: 60%;
background-color: pink;
}
.nav {
position: sticky;
top: 0;
background-color: blue;
z-index: 1000;
height: 50px;
}
.image-con {
position: fixed;
background-color: brown;
border: 2px solid yellow;
height: 500px;
width: 100%;
z-index: -1000;
}
<div class="nav"></div>
<div class="image-con"></div>
<div class="container">
<div class="box1"></div>
<div class="box2"></div>
</div>
最佳答案
删除
body,html{
height: 100%;
}
一旦您的粘性导航到达 html 和正文的底部,它就不再具有粘性了。它似乎向后移动了页面,但它实际上只是没有跟随您穿过溢出。希望这可以帮助。
编辑
我认为这就是您正在寻找的东西,我更改了您的代码的一部分,因此请仔细检查。由于某种原因,当您运行片段框 2 时,它会变小,但它可以在全页预览中工作。希望这有帮助
body,
html {
width: 100%;
margin: 0;
}
.box1 {
height:500px;
position: sticky;
top: 50px;
width: 39%;
vertical-align: top;
display: inline-block;
background-color: aqua;
border: 2px solid grey;
}
.box2 {
display: inline-block;
height: 1000px;
width: 60%;
background-color: pink;
}
.nav {
position: sticky;
top: 0;
background-color: blue;
z-index: 1;
height: 50px;
}
.image-con {
background-color: brown;
border: 2px solid yellow;
height: 500px;
width: 100%;
}
<div class="nav"></div>
<div class="image-con"></div>
<div class="box1"></div>
<div class="box2"></div>
关于html - 尽管我使用 top,但粘性位置不适用于 Flex 子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54382032/