如何讓最後一行的項目佔用CSS Grid中的剩餘空間?
P粉434996845
P粉434996845 2023-10-20 20:39:37
0
1
790

有沒有辦法強制網格最後一行中的所有項目填入該行,無論它們有多少?

我不知道網格中的項目數量,因此無法直接定位它們。我嘗試使用 grid-auto-flow:ensemble,但它並沒有真正幫助。

這是我的問題視覺化: :


#
div {
  margin:20px auto;
  width: 400px;
  background: #d8d8d8;
  display: grid;
  grid-gap: 10px;
  grid-template-columns: repeat(3, 1fr);
}
span {
  height: 50px;
  background: blue;
}
<div>
  <span></span>
  <span></span>
  <span></span>
  <span></span>
  <span></span>
  <span></span>
  <span></span>  
</div>
 


#
P粉434996845
P粉434996845

全部回覆(1)
P粉418351692

透過結合 CSS 規則 nth-child 和 nth-last-of type,這對於 CSS 網格來說是完全可能的。唯一要注意的是,需要事先知道列數。

.grid {
    display: grid;
    grid-template-columns: auto auto auto;
    justify-items: start;
    grid-gap: 10px;
}

.grid div {
  border: 1px solid #ccc;
  width: 100%;
}

.grid > *:nth-child(3n-1) {
  justify-self: center;
  text-align: center;
}

.grid > *:nth-child(3n) {
  justify-self: end;
  text-align: right;
}

.grid > *:nth-child(3n-1):nth-last-of-type(1) {
  border-color: red;
  grid-column: span 2;
}

.grid > *:nth-child(3n-2):nth-last-of-type(1) {
  border-color: red;
  grid-column: span 3;
}
<div class="grid">
  <div>text</div>
  <div>TEXT</div>
  <div>text</div>
  <div>text</div>
  <div>TEXT</div>
  <div>text</div>
  <div>text</div>
  <div>TEXT</div>
</div>
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板