【问题标题】:How do make a CSS grid with horizontal overflow?如何制作具有水平溢出的 CSS 网格?
【发布时间】:2021-10-23 06:13:22
【问题描述】:

我正在使用 CSS 网格构建一个 4 列布局。当浏览器的宽度达到特定断点(又名:移动设备)时,我希望将第一列固定在浏览器的左侧(X 轴。我目前正在使用 min-content 来确定该列的最大宽度是),然后将剩余的列滚动到下方。

您可以在亚马逊的移动比较功能中看到这种行为。向下滚动this page 到标有“比较眨眼相机”的部分。当您向左滑动时,您会看到第一列被锁定,其余产品在第一列下方滚动。)

我的代码结构是这样的(简化):

.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: 1fr;
grid-column-gap: 5px;
grid-row-gap: 0px;
}

.item1 { grid-area: 1 / 1 / 2 / 2; background:yellowgreen;}
.item2 { grid-area: 1 / 2 / 2 / 3; background:#ddd }
.item3 { grid-area: 1 / 3 / 2 / 4; background:#ddd}

.item1,.item2,.item3 {padding: 1rem;}
<p>THIS IS THE DESCRIPTION OF THE PRODUCT FEATURE IN EACH COLUMN</p>
  
<div class="container">
  <div class="item1">FEATURE 1 : TO BE STICKY</div>
  <div class="item2">FEATURE 2 : Scrolls under #1</div>
  <div class="item3">FEATURE 3 : Scrolls under #1</div>
</div>

如何让第一列保持锁定状态而其他列向下滚动?

【问题讨论】:

  • 考虑将第一列与position: fixed 放在一个单独的容器中。将剩余的三列放入网格容器中。
  • 嗯,我觉得这会让编辑成为一场小小的噩梦。 :( 我希望有不同的解决方案。
  • 我很欣赏提供简化代码的愿望,但我们需要的是minimal reproducible example
  • Argh.. 无法运行小代码演示。 @TylerH 我该如何正确地做到这一点?
  • @JPFotoz 点击底部的“编辑”,然后在编辑器预览部分点击“编辑上面的sn-p”。

标签: html css css-grid


【解决方案1】:

position:sticky 将在这里工作。

.grid{
  display:grid;
  grid-template-columns: 100px 1fr 1fr 1fr;
  width:400px;
  overflow-x:scroll;
}
.col{
  width:200px;
}
.left{
  position:sticky;
  left:0;
  z-index:999;
  background:lightgray;
}
  <div class="grid">
    <div class="left">
      Description
    </div>
    <div class = "col">
      Column 1
    </div>
    <div class = "col">
      Column 2
    </div>
    <div class = "col">
      Colunm 3
    </div>
  </div>

【讨论】:

  • 如果您只需要当前版本的主流浏览器的支持,position: sticky 是一个不错的选择。 caniuse.com/?search=sticky
  • @Quasipickle 跟进问题。我发现当视口很窄(使用 dom 检查器在 500 像素左右查看此页面)时,滚动条会出现在外部容器中。这会导致“粘性”元素向左移出屏幕。如何为移动设备锁定它?
  • 我最初的想法是这是由于外部容器中的设置。您能否通过简化示例链接到 Codepen?
猜你喜欢
  • 1970-01-01
  • 2022-06-10
  • 1970-01-01
  • 2021-03-15
  • 1970-01-01
  • 2014-05-28
  • 1970-01-01
  • 2015-03-02
  • 2020-03-16
相关资源
最近更新 更多