寓教于乐,Grid 布局小游戏 Grid Attack

开发 前端
最近我就在寻找有没有可以比较好锻炼 CSS Grid 布局的方式,好好复习一下 Grid 语法。

最近没事瞄了一眼 CSS Grid 的 CaniUse:

不得不说,兼容性已经达到了一个可以开始大规模使用的地步了。除去一些最近新出的关于 CSS Grid 的新特性,譬如间距 gap、支持瀑布流布局的 grid-template-column: masonry,已经可以放心的在业务中开始使用 Grid 布局了。

如何从入门到熟练使用 Grid?-- Grid-Attack

但是,CSS Grid 的一大坨语法总是容易让人望而生畏,心生退意。

最近我就在寻找有没有可以比较好锻炼 CSS Grid 布局的方式,好好复习一下 Grid 语法。

无意间,找到了这个网站,一个通过游戏闯关的模式,实现 Grid 语法的从入门到熟练掌握:

WebSite - CSS-Grid-Attack[1]:通过游戏闯关的方式学习 grid 布局

Grid Attack 的一些简介

简单介绍一下 Grid Attack。它的一些核心特点。

即便是在 Grid 布局方面零基础的同学,也可以尝试下,游戏一共有 80 关。在每一关的开始前,都会介绍 1 到 2 个 grid 相关的属性,并且给出相应的 Demo 和解释,通过 Demo,我们基本就能理解该属性如何具体使用。

然后,利用给出的提示和部分代码,通过完成指定的 Grid 布局,解锁该关卡,进入下一关。

尝试一下

OK,我们实际尝试一下。这里是 #50,第 50 题。

题目如下:

题目已经给出的代码:

<div id="field">
<div class="greenLand"></div>
<div id="redLand"></div>
<div class="greenLand"></div>
<div class="redLand"></div>
<div class="greenLand"></div>
<div class="redLand"></div>
</div>
#field {
display: grid;
gap: 20px;
grid-template: 1fr 1fr / 1fr 1fr;
/* type here */

}

我们需要做的,就是在题目要求的 type here 的地方,补全,我们的代码。使得,让绿色虚线和红色虚线边框内放置正确的 grid item。

我们可以看到题目中的 Grid item 有 6 个,但是实际只定义了一个 2x2 的 grid 布局 grid-template: 1fr 1fr / 1fr 1fr,因此,这里考察的其实是 Grid 布局中的 显示网格和隐式网格。

根据提示,控制多出来的网格的排布,就需要 grid-auto-columns 和 grid-auto-rows。

我们需要通过定义代码,让最后的两个 grid item,占据 100px 的高度即可。

题解如下:

#field {
display: grid;
gap: 20px;
grid-template: 1fr 1fr / 1fr 1fr;
/* type here */
grid-auto-rows: 100px;
}

右侧的布局也会实时变化,更新如下:

可以看到,绿色虚线和红色虚线边框内正确地放置了 6 grid item。本关就通过了。

这里,其实我省略了一些过程,譬如去学习了解,搞懂 grid-auto-columns 和 grid-auto-rows 的过程。

这个项目有意思的地方在于,有 3 种游戏模式,涵盖了简单、中等和困难不同级别的 CSS 网格知识。

其次是它互动有趣的环境 ,让学习感觉就像在玩耍,很有意思。

下面是官方给的一些介绍图:

感觉写的有点像软文了,但是确实我自己完整做完 80 关,感觉收获还是很大的。

初学者可以把它当成边学习语法边巩固的一个习题网站,而已经有一定基础的可以当成一个查缺补漏的复习工具。

网址:https://codingfantasy.com/games/css-grid-attack。

尝试一下,开启 Grid 布局的大门。

最后

好了,本文到此结束,希望对你有帮助 !

参考资料

[1]WebSite - CSS-Grid-Attack: https://codingfantasy.com/games/css-grid-attack/play?mode=medium&love=true。

责任编辑:姜华 来源: iCSS前端趣闻
相关推荐

2022-10-13 09:01:24

GridCSS二维布局

2021-12-01 09:53:46

CSS 技巧代码重构

2022-10-08 00:02:00

CSS工具系统

2022-04-15 14:57:57

Flex布局鸿蒙操作系统

2020-03-26 10:43:57

CSS Grid Ge Grid代码

2023-02-07 09:01:22

CSS

2024-04-09 10:10:23

GridCSS网格

2018-08-08 15:57:05

csshtml前端

2021-03-08 00:12:44

Grid 备忘录 函数

2017-10-10 15:52:17

前端FlexboxCSS Grid

2017-03-12 10:38:56

Chromewindows

2022-08-01 08:02:25

单元格可视化语法

2021-04-12 08:01:21

GridFlexbox网格

2012-07-09 09:43:59

ibmdw

2021-02-26 14:13:48

鸿蒙HarmonyOS应用开发

2013-05-14 10:10:28

Android开发棋子类Grid

2023-09-01 09:19:40

CSS函数模式

2009-10-12 13:54:22

VB.NET Data

2013-11-15 09:51:21

云端渲染NVIDIA

2014-03-18 11:11:45

Citrix XenDGRID vGPU
点赞
收藏

51CTO技术栈公众号