CSS Grid 如何实现网格元素的垂直居中?

阅读时长 3 分钟读完

CSS Grid 是一个强大的前端工具,可以将页面布局纵横交错的动态网格,让页面元素进行精准的定位和排列,解决了传统布局方式无法进行自由调整的弊端。而在 CSS Grid 中,垂直居中是一个非常常见的需求,在本篇文章中,我们将探讨如何在 CSS Grid 的网格元素中实现垂直居中。

实现方式

在传统布局中,我们可以使用 margin、padding 或者 position 属性实现元素的垂直居中,但是在 CSS Grid 中,这些属性的表现并不完美,我们需要使用新的属性来实现垂直居中。

在 CSS Grid 中,垂直居中的实现方式有两种:使用 display:flex 和 grid-template-rows 属性。

使用 display:flex

首先,我们需要在 CSS 样式表中设置布局容器的 display 属性为 flex,接着将 align-items 属性设置为 center,即可实现元素的垂直居中。

使用 grid-template-rows

另外一种实现方式是使用 grid-template-rows 属性,将容器的高度设置为 100% 或者指定具体的高度值,然后在网格元素的 grid-row 属性中设置代码如下所示。

这里的 2 / 3 意思是将元素放置在第二行,会占据第二行的所有空间。

这两种方式的实现效果是一样的,都可以让元素在垂直方向上居中对齐。

示例代码

下面,我们来看一个简单的例子,在一个有两列和三行的网格布局中,如何实现垂直居中。

-- -------------------- ---- -------
---------- -
  -------- -----
  ---------------------- --------- -----
  ------------------- --------- -----
  ------- ------
-

----- -
  -------- -----
  ------------ -------
  ---------------- -------
  ----------------- --------
-

这里将容器的高度设置为 100vh,表示占满整个视口,便于观察垂直居中的效果。将网格布局设置为 2 列和 3 行,然后设置网格元素的背景色为灰色,方便观察。

最后,将网格元素的 display 属性设置为 flex,align-items 属性设置为 center,即可让元素在垂直方向上居中。

总结

通过本篇文章的介绍,相信你已经掌握了在 CSS Grid 中实现网格元素的垂直居中。虽然实现方式比传统布局更加复杂,但是它给我们带来了更加灵活的布局方式和更好的用户体验,值得我们使用和学习。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647be594968c7c53b07296c3

纠错
反馈