html - 在 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;
到 box 类:
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>
推荐阅读
- amazon-web-services - 为什么我没有看到其他 Elastic Inference 加速器?
- java - 如何确定 Ivy 检索任务是否更新了我的 lib 文件夹中的任何依赖项?
- unity3d - 我的播放器空闲动画正在播放,但我在测试游戏时看不到它
- android - CastRemoteDisplayLocalService 在 ChromeCast 设备上显示自定义视图?
- r - 当一个元素包含一个函数时,按元素名称合并和封装几个相似的列表
- c++ - Linux 上的 MT 和 MD
- reactjs - 反应原生tipsi条带错误你应该先调用init
- javascript - 检查 URL 时触发操作
- cassandra - java.io.EOFException 使用 sstabledump
- unity3d - 可编写脚本的对象是否会导致 Unity 编辑器滞后?