今天发现了一篇牛掰的文章(https://dev.to/devmount/8-games-to-learn-css-the-fun-way-4e0f),讲述了12款学习CSS的游戏,真可谓是玩着游戏就把前端CSS知识点学废了,是不是很激动,有种跃跃欲试的感觉?由于游戏太多,我没有一一进行通关,下面讲述自己通关的那款游戏——Flexbox Defense(http://www.flexboxdefense.com/)。
一、基础知识
这是一款塔防类游戏,有点像保卫萝卜,该款游戏共12个关卡,为了通关需要了解Flex布局的一些知识,下面就来简单科普一下需要用到的小知识点【注:本文仅科普需要用到的知识点,更加详细的可看官方文档】。
1.1 justify-conent
justify-content
属性定义了项目在主轴上的对齐方式。
flex-start
(默认值):左对齐flex-end
:右对齐center
:居中space-between
:两端对齐,项目之间的间隔都相等。space-around
:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
1.2 align-items
align-items
属性定义项目在交叉轴上如何对齐。
flex-start
:交叉轴的起点对齐。flex-end
:交叉轴的终点对齐。center
:交叉轴的中点对齐。baseline
: 项目的第一行文字的基线对齐。stretch
(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
1.3 flex-direction
flex-direction
属性决定主轴的方向(即项目的排列方向)
row
(默认值):主轴为水平方向,起点在左端。row-reverse
:主轴为水平方向,起点在右端。column
:主轴为垂直方向,起点在上沿。column-reverse
:主轴为垂直方向,起点在下沿。
1.4 order
order
属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。
1.5 align-self
align-self
属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items
属性。默认值为auto
,表示继承父元素的align-items
属性,如果没有父元素,则等同于stretch
。
二、游戏攻略
基础知识已经储备完毕,下面就靠这些三板斧进行通关操作了,一言不合就是砍。
2.1 关卡1
用justify-content就可以解决。
2.2 关卡2
用justify-content就可以解决。
2.3 关卡3
用justify-content就可以解决。
2.4 关卡4
用align-items就可以解决。
2.5 关卡5
用justify-content、align-items就可以解决。
2.6 关卡6
用justify-content、align-items就可以解决。
2.7 关卡7
用flex-direction就可以解决。
2.8 关卡8
用flex-direction、align-items就可以解决。
2.9 关卡9
这个关卡增加了新的武器——散弹炮,这个位置千万要注意,此关卡用flex-direction、justify-content、align-items就可以解决。
2.10 关卡10
用justify-content、order就可以解决。
2.11 关卡11
用justify-content、align-self就可以解决。
2.12 关卡12
用flex-direction、justify-content、align-self、order就可以解决。