玩着游戏就把前端知识学了,贼爽!!!

今天发现了一篇牛掰的文章,讲述了12款学习CSS的游戏,真可谓是玩着游戏就把前端CSS知识点学废了,是不是很激动,有种跃跃欲试的感觉?由于游戏太多,我没有一一进行通关,下面讲述自己通关的那款游戏——Flexbox Defense

CSS游戏.gif

一、基础知识

这是一款塔防类游戏,有点像保卫萝卜,该款游戏共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就可以解决。

18011fe83cfb9f8e7a29247e215ace3.png

2.2 关卡2

用justify-content就可以解决。

de9f9d8f680fdae4ef8458ea5e0f3d6.png

2.3 关卡3

用justify-content就可以解决。

a063865357bc201afc35cea364466f3.png

2.4 关卡4

用align-items就可以解决。

2081cde6c95035333c5b69b74c63774.png

2.5 关卡5

用justify-content、align-items就可以解决。

415d0c3248dd280cf00b876296c5a54.png

2.6 关卡6

用justify-content、align-items就可以解决。

f2e5b6ff924d79ff0aee3063d85eeb4.png

2.7 关卡7

用flex-direction就可以解决。

dbee04d2b0c7b2b5ffee17094b42981.png

2.8 关卡8

用flex-direction、align-items就可以解决。

11b65a43781ba3ca04859dc2569e821.png

2.9 关卡9

这个关卡增加了新的武器——散弹炮,这个位置千万要注意,此关卡用flex-direction、justify-content、align-items就可以解决。

357f5e4ddc05fbf660327ba091dc429.png

2.10 关卡10

用justify-content、order就可以解决。

7de473ed123fbac9d6fe2fe62437c01.png

2.11 关卡11

用justify-content、align-self就可以解决。

ba6ca0226d5e6e87607e79c207c9f68.png

2.12 关卡12

用flex-direction、justify-content、align-self、order就可以解决。

0ce4e5f23c9688e78df44236b68a739.png

猜你喜欢

转载自juejin.im/post/7095324571624013837