尽管我使用top,但位置粘滞不适用于flex儿童

时间:2019-01-26 19:37:28

标签: html css flexbox sticky sidenav

im试图用html构建ui。

  1. 导航栏应位于顶部
  2. 导航栏下方的某些视频和其他内容应在视频上滚动(现在为棕色框)。
  3. 用于导航的天蓝色框应停止在导航框的正下方,粉红色框(内容框)应继续滚动。

问题:

  1. 粘性导航框在滚动后会向上滚动,然后
  2. 天蓝色框不会在导航框下方停止。 请参阅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>

https://codepen.io/mbs-yaswanth/pen/yZOLXQ

1 个答案:

答案 0 :(得分:0)

删除

body,html{
        height: 100%;
}

一旦您的资产净值导航到html和body的底部,它就不再具有粘性。它似乎在上移页面,但实际上它并没有使您跟踪溢出。希望这可以帮助。 编辑
我认为这就是您要寻找的内容,因为我更改了很多代码,所以请仔细检查。由于某些原因,当您运行代码段框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>