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

CSS Grid 强制前2个div堆叠、剩余元素实现overflow-x:auto横向滚动

解决方案

问题原因

你之前的实现将容器的grid-auto-flow设为column,所有子元素会被强制排在同一行,自然前两个标题元素也会参与横向滚动。

修正后CSS代码

@media (max-width: 767px) {
  .container {
    display: grid;
    grid-gap: 1.5rem;
    /* 拆分3行:前两行放标题、副标题,第三行放所有卡片 */
    grid-template-rows: auto auto 1fr;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    /* 可选:预留滚动条位置避免内容被遮挡 */
    padding-bottom: 1rem;
  }

  /* 前两个标题元素固定在左侧,不跟随滚动 */
  .container > div:nth-child(1),
  .container > div:nth-child(2) {
    width: 100%;
    position: sticky;
    left: 0;
    /* 替换为你的页面实际背景色,避免滚动时卡片内容透出 */
    background: #ffffff;
    z-index: 1;
  }

  /* 所有卡片强制放在第三行,固定宽度不收缩,自动横向排列 */
  .container .card {
    grid-row: 3;
    width: calc(100% - 3rem);
    flex-shrink: 0;
    align-items: center;
    display: block;
    justify-content: center;
  }
}

注意事项

你给出的HTML代码里容器写的是<div style="container">属于笔误,需要改为<div class="container">才能匹配CSS选择器,如果是输入时手误可忽略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:09:03