html - 尽管我使用 top,但粘性位置不适用于 Flex 子项

标签 html css flexbox sticky sidenav

我正在尝试用 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

最佳答案

删除

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/

相关文章:

javascript - React 构建看起来与 React 开发不同

css - 当元素自动换行而不填满行时如何使用 flexbox 并排放置元素

html - Flexbox CSS中溢出滚动项右侧没有空间

css - 在CSS Flexbox中,为什么没有“justify-items”和“justify-self”属性?

html - Wordpress 内部样式的问题

php - 表单提交变量未检索数据

php - 从 url 获取真实的视频 URL

javascript - 无论内容长度如何,都保持错误工具提示始终垂直对齐

javascript - React - 单击更改 CSS 属性(箭头功能)

javascript - 如果图像正常,为什么和img onerror处理程序一起执行