在 CSS 网格内垂直对齐内容

Vertically align content within CSS Grid

我下面有一个 CSS 网格,我希望内容(现在是字母)在单元格内垂直对齐。完成此任务的最佳方法是什么? vertical-align:middle 在单元格上似乎没有做任何事情,align-items:center; 在网格容器上工作,但高度都不同。

body {
  margin: 40px;
}

.wrapper {
  display: grid;
    grid-gap: 10px;
  grid-template-columns: [col] 100px [col] 100px [col] 100px;
  grid-template-rows: [row] auto [row] auto [row] ;
  background-color: #fff;
  color: #444;
 }

 .box {
  background-color:#444;
  color:#fff;
  padding:20px;
  font-size:150%;
 }

 .a {
  grid-column: col / span 2;
  grid-row: row 1 / 3;
 }
 .b {
  grid-column: col 3 / span 1;
  grid-row: row ;
 }
 .c {
  grid-column: col 3 / span 1;
  grid-row: row 2 ;
 }
 .d {
  grid-column: col / span 1;
  grid-row: row 3;
 }

 .e {
  grid-column: col 2 / span 1;
  grid-row: row 3;
 }

.f {
  grid-column: col 3 / span 1;
  grid-row: row 3;
}
<div class="wrapper">
  <div class="box a">A</div>
  <div class="box b">B</div>
  <div class="box c">C</div>
  <div class="box d">D</div>
  <div class="box e">E</div>
  <div class="box f">F</div>
</div>

如果您只想让它们垂直居中,您可以将 display:flex;align-items: center; 添加到方框 class:

body {
  margin: 40px;
}

.wrapper {
  display: grid;
  grid-gap: 10px;
  grid-template-columns: [col] 100px [col] 100px [col] 100px;
  grid-template-rows: [row] auto [row] auto [row];
  background-color: #fff;
  color: #444;
}

.box {
  background-color: #444;
  color: #fff;
  padding: 20px;
  font-size: 150%;
  display: flex;
  align-items: center;
}

.a {
  grid-column: col / span 2;
  grid-row: row 1 / 3;
}

.b {
  grid-column: col 3 / span 1;
  grid-row: row;
}

.c {
  grid-column: col 3 / span 1;
  grid-row: row 2;
}

.d {
  grid-column: col / span 1;
  grid-row: row 3;
}

.e {
  grid-column: col 2 / span 1;
  grid-row: row 3;
}

.f {
  grid-column: col 3 / span 1;
  grid-row: row 3;
}
<div class="wrapper">
  <div class="box a">A</div>
  <div class="box b">B</div>
  <div class="box c">C</div>
  <div class="box d">D</div>
  <div class="box e">E</div>
  <div class="box f">F</div>
</div>