【问题标题】:Vertically align content within CSS Grid [duplicate]在 CSS Grid 中垂直对齐内容 [重复]
【发布时间】:2018-11-04 03:28:38
【问题描述】:

我在下面有一个 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>

【问题讨论】:

    标签: html css centering


    【解决方案1】:

    如果您只是希望它们垂直居中,您可以将 display:flex;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%;
      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>

    【讨论】:

      猜你喜欢
      • 2011-02-19
      • 2012-08-28
      • 2019-10-28
      • 2011-06-14
      • 1970-01-01
      • 2012-04-02
      • 2016-10-19
      • 1970-01-01
      相关资源
      最近更新 更多