CSS Grid 实战:从零开始实现完整的网站布局

阅读时长 5 分钟读完

什么是 CSS Grid

CSS Grid 是一种二维网格布局系统,可以很容易地实现复杂的网站布局。它是基于网格线(grid lines)和单元格(grid cells)来构建布局的。

相比传统的布局方式,CSS Grid 提供了更多的灵活性和控制性。使用它可以轻松地实现栅格布局、响应式布局、多列布局、居中布局等等。

CSS Grid 的基本概念

在使用 CSS Grid 时,需要了解一些基本概念:

  • 网格容器:将网格布局应用到的父元素。
  • 网格项:网格容器中的子元素,可以是任何元素。
  • 网格行 / 列:网格容器中由水平和垂直线组成的网格。
  • 网格线:划分网格行 / 列的线,可以是垂直线(column line)或水平线(row line)。
  • 网格轨道:相邻网格线之间的区域。
  • 网格区域:由四条网格线围成的矩形区域,可以跨越多个网格。

实战演练:从零开始实现完整的网站布局

下面我们将从零开始使用 CSS Grid 实现一个完整的网站布局。这个布局包括网站的 header、main、footer、sidebar 等部分,主体部分采用两列布局。

步骤:

  1. 创建 HTML 结构
-- -------------------- ---- -------
--------- -----
----- ----------
------
    ----- ----------------
    ---------- ---- ----------
    ----- ---------------- ------------------
-------
------
    --------
        ------- ---- -------
    ---------
    ------
        ---- -------------
            -------------
            -------- ----- ----- --- ----- ----------- ---------- ----- ------ ------ ------ --------- --- -------- ---- ------ -- ------ --- -- -------- ------ ------- ----------- ----- -- ----- --------- --------- -- --------- --- -- ---- --------- -------------
        ------
        ---- --------------
            -------------
            -------- ----- ----- --- ----- ----------- ---------- ----- ------ ------ ------ --------- --- -------- ---- ------ -- ------ --- -- -------- ------ ------- ----------- ----- -- ----- --------- --------- -- --------- --- -- ---- --------- -------------
        ------
    -------
    --------
        ------- ------ ---- --- ---- ------
    ---------
-------
-------
  1. 添加 CSS 样式
-- -------------------- ---- -------
---- -
    ------- --
    -------- --
-
------ -
    ----------------- -----
    ----------- -------
    -------- -----
-
---- -
    -------- -----
    ---------------------- --- ----
    --------- -----
    -------- -----
-
------ ------ -
    ----------------- -----
    -------- -----
-
------ -
    ----------------- -----
    ----------- -------
    -------- -----
-
  1. 解析 CSS 样式

首先,我们将 body 元素的 marginpadding 属性设置为 0,这样可以去掉页面的默认外边距和内边距。

然后,我们给 headerfooter 元素设置背景颜色、居中对齐和内边距。我们用 text-align: center 将标题文本居中对齐。

下一步,我们将 main 元素设置为网格容器。使用 grid-template-columns 属性,我们将页面左侧的列设置为 1fr 宽度,右侧的列设置为 2fr 宽度。这意味着左侧列占用 main 宽度的 1/3,右侧列占用 2/3。

我们还使用了 grid-gap 属性定义了网格项之间的空隙大小,这里设置为 20px。

最后,我们将 leftright 元素分别设置为网格项,并添加了背景颜色和内边距。

  1. 效果展示

总结

通过本文的实例,我们可以看到 CSS Grid 可以轻松实现复杂的网站布局。我们希望您通过阅读本文,对 CSS Grid 的基本概念和实际应用有所了解,并能够尝试使用 CSS Grid 实现更多复杂的布局。

完整示例代码:https://codepen.io/huiqiang513/full/WNjMxoL

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

纠错
反馈