CSS网格:动态跨越最后一列

5

是否可以自动跨越最后一列,占用网格中剩余的空间?基本上我正在尝试实现这个目标:

enter image description here

.row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.col {
  background: blue;
  padding: 20px;
  border: 1px solid red;
}

.col:last-child {
  background: yellow;
  /* missing magic here */ 
}
<div class="row">
  <div class="col"></div>
  <div class="col"></div>
  <div class="col"></div>
</div>
<div class="row">
  <div class="col"></div>
  <div class="col"></div>
</div>
<div class="row">
  <div class="col"></div>
</div>


https://stackoverflow.com/q/45402709/3597276 - Michael Benjamin
1个回答

7

不幸的是,在当前版本的CSS Grid中,似乎没有像grid-column: span auto / -1这样的通用解决方案。但对于这个3x1网格的特定情况,您可以尝试以下操作:

.row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.col {
  background: blue;
  padding: 20px;
  border: 1px solid red;
}

.col:last-child {
  background: yellow;
  grid-column-end: -1;
}
.col:nth-child(1):last-child {
  grid-column-start: 1;
}
.col:nth-child(2):last-child {
  grid-column-start: 2;
}
<div class="row">
  <div class="col"></div>
  <div class="col"></div>
  <div class="col"></div>
</div>
<div class="row">
  <div class="col"></div>
  <div class="col"></div>
</div>
<div class="row">
  <div class="col"></div>
</div>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接