制作一个简单的翻牌游戏, 使用HTML5/CSS3设计界面, Javascript翻牌对比; 麻雀虽小,五脏俱全, 此项目将CSS中常见的技术应用在项目中,使用JavaScript原生开发,设计简单,便于快速掌握CSS3和JavaScript的用法; 某些知识点再通过其它视频或文档去了解,事半功倍。
设计页面
1. 设计页面中的游戏标题、倒计时、点击次数
- 先设计好HTML结构,HTML结构中每个元素先预定好class类选择器的名字
- 在页面相同目录下创建fonts目录,将字体文件 恐怖蜘蛛.ttf 放在里面
- 在style标签中 使用@font-face引用字体
- 页面中盒子计算方式为 boder-box
- 将页面字体设计为 自定义的 “蜘蛛”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>翻牌游戏</title> <style> @font-face { font-family: "蜘蛛"; src: url(fonts/恐怖蜘蛛.ttf) format("truetype"); } * { box-sizing: border-box; } html { font-family: "蜘蛛", serif; min-width: 100vw; min-height: 100vh; } </style> </head> <body> <h1 class="game-title">翻牌游戏</h1> <div class="game-container"> <div class="game-info-container"> <div class="game-info"> 倒计时: <span id="timeRemaining" class="time-remaining">60</span> </div> <div class="game-info"> 点击次数: <span id="clickCount" class="click-count">0</span> </div> </div> </div>
</body> </html>
|
结果如下图所示
2. 游戏标题和信息排版布局
- 设计一个背景,让颜色感觉恐怖一点,这是我设置成暗红,使用了CSS3中的渐变
1 2 3 4
| body { margin: 0; background: radial-gradient(#F15F66, #7E2625); }
|
- 设计游戏标题的基础CSS,其实也就是颜色、字体大小、字体粗细、文本的位置等等, 这些也是常用的CSS样式
- 游戏信息的文字颜色和大小也需要设计
1 2 3 4 5 6 7 8 9 10
| .game-title { color: #EBD408; text-align: center; font-size: 4em; font-weight: normal; } .game-info { color: #F0F4F7; font-size: 3em; }
|
- 游戏信息这部分的布局,设计了三个样式 game-container,game-info-container, game-info
- game-container是游戏信息最上层的容器, 选择grid网格布局,内容居中,格子之间定义一定的间隙
- 关于grid 网格布局,后续会有详细的案例来说明, 也可以查看CSS3文档
1 2 3 4 5 6
| .game-container { display: grid; grid-template-columns: repeat(4, auto); justify-content: center; gap: 10px; }
|
- game-info-container这个容器的布局采用 flex, 让两个文字最终会显示在两端
1 2 3 4 5
| .game-info-container { grid-column: 1 / -1; display: flex; justify-content: space-between; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>翻牌游戏</title> <style> @font-face { font-family: "蜘蛛"; src: url(fonts/恐怖蜘蛛.ttf) format("truetype"); } * { box-sizing: border-box; } html { font-family: "蜘蛛", serif; min-width: 100vw; min-height: 100vh; }
body { margin: 0; background: radial-gradient(#F15F66, #7E2625); } .game-title { color: #EBD408; text-align: center; font-size: 4em; font-weight: normal; } .game-info { color: #F0F4F7; font-size: 3em; } .game-container { display: grid; grid-template-columns: repeat(4, auto); justify-content: center; gap: 10px; } .game-info-container { grid-column: 1 / -1; display: flex; justify-content: space-between; } </style> </head> <body> <h1 class="game-title">翻牌游戏</h1>
<div class="game-container"> <div class="game-info-container"> <div class="game-info"> 倒计时: <span id="timeRemaining" class="time-remaining">60</span> </div> <div class="game-info"> 点击次数: <span id="clickCount" class="click-count">0</span> </div> </div> </div>
</body> </html>
|
下一篇中来设计一下扑克牌,也会用到常见的CSS样式,特别是position, z-index, 过渡效果等