CSS 网格 - 第一行和第二行的列数可以不同

Sag*_*nha 1 css css-grid

我试图了解如何实现一个布局,该布局在第一行中包含两列,在第二行、第三行等中包含三列。

<section>
   <div>1</div>
   <div>2</div>
   <div>3</div>
   <div>4</div>
   <div>5</div>
   <div>6</div>
   <div>7</div>
   <div>8</div>
</section>

//CSS
section {
   display: grid;
   grid-template-columns: 1fr 1fr;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码将为我提供两列布局,但如何修改它以实现上述布局。

Sag*_*nha 7

这才是我真正想要的。

section {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 5px;
}

div {
  height: 50px;
  background: red;
}
div:first-child {
  grid-column: 1 / 3;
}
Run Code Online (Sandbox Code Playgroud)
<section>
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
  <div>8</div>
</section>
Run Code Online (Sandbox Code Playgroud)


Tem*_*fif 6

您可以尝试如下所示:

section {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-gap: 5px;
}

section div {
  grid-column: span 3;
  height: 50px;
  background: red;
}

section div:nth-child(n + 3) {
  grid-column: span 2;
}
Run Code Online (Sandbox Code Playgroud)
<section>
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
  <div>8</div>
</section>
Run Code Online (Sandbox Code Playgroud)