粘性溢出-自动去除间隙

Sticky with overflow-auto remove gap

我有此内容 overflow-auto 并在顶部和底部的 sticky 内。我希望粘性元素成为内容本身的一部分,并且没有额外的 space.

因为这是一个简单的示例,您可以使用使用 red 定义 background-color 的变通方法,但我不想那样,它不能应用于我的复杂情况。

问题:

理想

.container {
  height: 200px;
  width: 200px;
  overflow: auto;
}

.content {
  height: 400px;
  width: 400px;
  background: red;
}

.stickie-top {
  position: -webkit-sticky;
  position: sticky;
  left: 0;
  top: 0;
}

.stickie-bottom {
  position: -webkit-sticky;
  position: sticky;
  bottom: 0;
  left: 0;
}
<div class="container">
  <div class="stickie-top">Sticky top</div>
  <div class="content">Lorem ipsum ...</div>
  <div class="stickie-bottom">Sticky bottom</div>
</div>

你可以看到这个例子:jsfiddle

使它们的高度等于 0。对于底部粘性,您将需要额外的 CSS 来纠正对齐方式

.container {
  height: 200px;
  width: 200px;
  overflow: auto;
}

.content {
  height: 400px;
  width: 400px;
  background: red;
}

.stickie-top {
  position: sticky;
  left: 0;
  top: 0;
  height:0;
}

.stickie-bottom {
  position: sticky;
  bottom: 0;
  left: 0;
  height:0;
  display:flex;
  align-items:flex-end;
}
<div class="container">
  <div class="stickie-top">Sticky top</div>
  <div class="content">Lorem ipsum ...</div>
  <div class="stickie-bottom">Sticky bottom</div>
</div>

试试下面的代码。这将有助于解决您的问题。

body{
  margin: 0;
}
.container {
  height: 200px;
  width: 200px;
  overflow: auto;
  background: red;
}

.content {
  height: 400px;
  width: 400px;
}

.stickie-top {
  position: fixed;
  left: 0;
  top: 0;
}

.stickie-bottom {
  position: sticky;
  bottom: 0;
  left: 0;
}
<div class="container">
  <div class="stickie-top">Sticky top</div>
  <div class="content">Lorem ipsum ...</div>
  <div class="stickie-bottom">Sticky bottom</div>
</div>