首页 > 解决方案 > 将css网格行限制为特定数量的项目

问题描述

* {
  box-sizing: border-box;
}
main {
  padding: 0 20px;
  width: 100%; 
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); 
  grid-gap: 1em;
}

article {
  border-radius: 10px;
  padding: 20px;
  color: #fff;
}

article:nth-child(odd) {
  background-color: #55BBE9;
}

article:nth-child(even) {
  background-color: #afbe29;
}
<main>
  <article>1</article>
  <article>2</article>
  <article>3</article>
  <article>4</article>
  <article>5</article>
  <article>6</article>
  <article>7</article>
  <article>8</article>
  <article>9</article>
</main>

在上面的示例中,如何将每行限制为只有 3 个article窗格,而不设置max-width? 请注意,我仍然想要响应能力。只是当我展开浏览器窗口时,我不希望窗格 4、5、6 等抢购到第一行。

标签: htmlcsscss-grid

解决方案


您只需为所需的每一列将 grid-template-columns 设置为 auto 即可。576px 或更小的屏幕尺寸将转换为单列:

* {
  box-sizing: border-box;
}

main {
  padding: 0 20px;
  width: 100%;
  display: grid;
  grid-template-columns: auto auto auto;
  grid-gap: 1em;
}

@media (max-width: 576px) {
  main {
    grid-template-columns: auto;
  }
}

article {
  border-radius: 10px;
  padding: 20px;
  color: #fff;
}

article:nth-child(odd) {
  background-color: #55BBE9;
}

article:nth-child(even) {
  background-color: #afbe29;
}
<main>
  <article>1</article>
  <article>2</article>
  <article>3</article>
  <article>4</article>
  <article>5</article>
  <article>6</article>
  <article>7</article>
  <article>8</article>
  <article>9</article>
</main>


推荐阅读