CSS Grid 布局:实现排版、长度、高度、跨度和列表

阅读时长 5 分钟读完

前言

作为前端开发人员,我们一定都遇到过这样的问题:如何实现网页的布局?从早期的 table 布局到后来的专用 CSS 框架,每一次技术突破,都让我们的布局方式更加优秀。本文将向大家介绍一种前端布局方式 -- CSS Grid 布局。

CSS Grid 布局是什么

CSS Grid 布局是一种二维网格布局系统,可以通过将网页分割成多个网格,然后设置行列的大小和位置,从而实现灵活的网页布局。Grid 布局不仅可以控制容器内的项目排列,还能增加网页的响应性,从而实现了更加灵活和多元化的布局。

如何实现排版

布局方式的不同决定着网页的效果和功能,下面将介绍如何使用 Grid 布局来实现网页的排版。

容器的创建

首先,我们需要创建一个包含项目的容器,CSS 中创建容器的方式是使用 display: grid 属性。容器可以通过设置 grid-template-columnsgrid-template-rows 来确定网格的大小和位置,如下示例代码:

这段代码创建了一个包含 6 个网格的容器,其中前三个网格的宽度为 100 像素,后两个网格的高度为 100 像素,该容器的大小默认为所有网格的总大小。

项目的定位

在 Grid 布局中,我们可以通过设置 grid-rowgrid-column 属性来定位元素,这两个属性可以设置一个具体的位置,也可以设置一个范围,如下示例代码:

这段代码设置了元素 item 的位置,将其放置在第一行,第一列,并且跨越两列。

如何控制长度和高度

控制网格大小和位置是 Grid 布局的基础。当然,如果我们想控制网格的长度和高度,也可以使用不同的属性来实现。

控制网格长度

CSS Grid 布局中,设置网格的长度有多种方式,例如使用 grid-template-columns 或者 grid-column。这些属性可以指定网格的宽度,具体操作方式如下:

  • grid-template-columns 属性中设置指定长度,例如:grid-template-columns: 100px 1fr 2fr 1fr
  • grid-template-areas 属性中设置,例如:grid-template-areas: "a b b b" "a c c c" "a c c c" "a d d d" "a . . ."
  • 直接在 grid-column 中设置网格的长度,例如:grid-column: 1/4

控制网格高度

控制网格高度的方式和控制网格长度是类似的,例如使用 grid-template-rowsgrid-row。这些属性可以指定网格的高度,如下代码示例:

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

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

这段代码设置了一个容器,包含 3 行和 3 列,其中第一行和第二行的高度分别为 50 像素和 100 像素,第三行的高度为剩余空间的占比,三个网格 item 位于第一行和第二列中。

如何实现跨度和列表

CSS Grid 布局不仅能够控制容器内的项目排列,还可以实现网格的跨度和列表。下面我们来看一下如何使用 CSS Grid 布局实现网格的跨度和列表。

实现跨度

在 Grid 布局中,我们可以使用 span 关键字设置网格的跨度,将元素跨越多个单元格。例如,下面代码中的 grid-column: 1 / span 2 就表示元素应跨越 2 个网格。

实现列表

CSS Grid 布局可以轻松地实现网格的列表排列,例如下面这个例子就展示了如何使用网格来实现一个简单的列表。

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

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

这段代码创建了一个包含7个元素的容器,其中每个元素都被设置为一行。使用 repeat 函数创建了一个宽度相等的3列格子,每个网格大小被设置为 1/3,让每个元素都等宽等高。

总结

本文详细介绍了如何使用 CSS Grid 布局来实现网页的排版、长度、高度、跨度和列表。CSS Grid 布局的优点是简单、灵活、可扩展和响应式,能够满足各种不同的布局需求。如果您是前端开发人员,一定要学会使用 CSS Grid 布局,它将大大提高您在前端开发中的效率和质量。

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

纠错
反馈