You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

根据高度切换滚动粘性定位:顶部或底部对齐方案

双列滚动布局的自适应固定需求

我需要实现一个双列布局,两列均支持滚动,具体交互逻辑如下:

  • 当其中一列高度大于另一列时,较矮的列滚动至内容底部后固定,直至较高的列完成滚动
  • 当某列高度小于视口高度时,该列需要固定在顶部,而非底部

当前实现的两种单一效果

效果1:高列场景下的底部固定(仅两列均高于视口时生效)

以下代码可实现两列均高于视口时,矮列滚动到底部后固定的效果:

.container {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.stick-container {
  position: sticky;
  align-self: end;
  bottom: 0;
}
<div style="height: 100px"></div>

<div class="container">
  <div class="stick-container">
    <img src="https://images.unsplash.com/photo-1468487422149-5edc5034604f" style="height: 2500px; width: 100%"/>
  </div>
  <div class="stick-container">
    <img src="https://images.unsplash.com/photo-1507608616759-54f48f0af0ee" style="height: 1500px; width: 100%"/>
  </div>
</div>

<div style="background-color: beige; height: 500px; width: 100vw"></div>

效果2:矮列场景下的顶部固定

以下代码可实现矮列固定在顶部的效果,但无法与上述底部固定效果自动切换:

.container {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.stick-container {
  position: sticky;
  align-self: start; /* 修改处 */
  top: 0;  /* 修改处 */
}
<div style="height: 100px"></div>

<div class="container">
  <div class="stick-container">
    <img src="https://images.unsplash.com/photo-1468487422149-5edc5034604f" style="height: 2500px; width: 100%"/>
  </div>
  <div class="stick-container">
    <img src="https://images.unsplash.com/photo-1507608616759-54f48f0af0ee" style="height: 100px; width: 100%"/>
  </div>
</div>

<div style="background-color: beige; height: 500px; width: 100vw"></div>

问题

如何让布局自动在两种固定状态间切换?或者是否存在更优的CSS对齐样式,可直接实现这种自适应效果?


内容的提问来源于stack exchange,提问作者Codey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:35:19