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

如何使用Tailwind CSS在React中实现左固定右滚动后整体滚动的布局

React + Tailwind CSS 实现左侧粘性、右侧滚动布局方案

修改后代码

直接替换你原有的类名配置即可,不需要额外编写JS逻辑:

<div className="mainDiv">
  <div className="rowDiv flex gap-8 w-full max-w-7xl mx-auto px-4">
    <div className="staticDiv w-2/5 sticky top-4 h-fit max-h-[calc(100vh-16px)] overflow-hidden">
      <ProductImages 
       images={productData.mediaUrls} 
      />
    </div>
    <div className="scrollableDiv w-3/5">
      <ProductInfo
       productData={productData}
      />
    </div>
  </div>
  <div className="relatedProductsDiv mt-12">
   <RelatedProducts 
    sectionHeading="Related products" 
   />
  </div>
  <div className="recentlyViewedProductsDiv mt-12">
   <RecentlyViewedProducts
    sectionHeading="Recently viewed products" 
   />
  </div>
</div>

配置说明

  • 父容器rowDiv使用flex布局实现左右两列并排,可按需调整间距、最大宽度、页面内边距参数
  • 左侧staticDiv核心配置逻辑:
    • sticky触发粘性定位,仅在父容器rowDiv处于视口范围内时生效
    • top-4设置粘性定位的触发位置为距离视口顶部4px,可修改为top-0实现完全贴顶
    • h-fit让左侧高度自适应内容,max-h-[calc(100vh-16px)]限制最大高度不超过视口,避免内容溢出无法查看
    • 如果左侧内容高度超过视口,可将overflow-hidden改为overflow-auto实现左侧内部滚动
  • 右侧scrollableDiv无特殊定位,高度由内部商品信息内容自动撑开,滚动时正常上移,此时左侧始终粘在视口对应位置,直到整个rowDiv的底部滚动到视口顶部后,左右两列会一起向上滚动,露出下方的相关商品、最近浏览商品区块

注意事项

如果你的页面顶部存在固定导航栏,需要将top-4的值调整为导航栏的高度加上你需要的间距,例如导航栏高度为64px,就修改为top-[68px],避免左侧内容被导航遮挡。

内容的提问来源于stack exchange,提问作者I'm Sunil3

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:54:03