透 CSS可能是一个相当大的挑战。但没有啥捷径,只能多练多写。不过还是有一些有趣的方法来学习的,就是通过游戏。本文将重点介绍十种你可以边玩边学习CSS的神奇游戏。
地址:https://flexboxfroggy.com/
《Flexbox froggy》这是一个非常有趣游戏,主要用来学习flex布局。它有 24 个级别,难度逐渐加深。我们可以使用flex 相关的属性将青蛙放到正确的位置,即可过关。
地址:http://www.flexboxdefense.com/
《Flexbox defense》也是一个学习 flex布局的游戏,在这个游戏中,我们必须通过 flex 布局,将炮台移到正确的位置,以保卫一条道路不被攻击。它有 12 个级别,难度逐渐加深,考查 flex 的程序也越深。
地址:https://knightsoftheflexboxtable.com/
也是一个学习 flex布局的游戏,不过它是采用 TailwindCSS 风格,如果你喜欢用 TailwindCSS,那么这个游戏适合你,它有 18 个级别,难度逐渐加深,考查 flex 的程序也越深。
地址:https://codingfantasy.com/games/flexboxadventure/play
《 Flex Box adventure》也是一个学习 flex布局的游戏。它有 24关,除了风格不同外,还有一个比较人性化的体验,就是有提示,如果我们想不出答案,可通过提示,找到我们想要的正确答案。
地址:https://mastery.games/flexboxzombies/
《 Flexbox zombies》也是一个学习 flex布局的游戏。这款游戏的画面设置得超级好!我被这个故事情节的酷炫程度给震惊了。
地址:https://cssgridgarden.com/
《Grid garden》是学习CSS网格的一种超级有趣的方式。我们必须使用网格布局来确保所有的胡萝卜得到水才能过关。它有28个关卡,可以练习大量的CSS网格选项!
地址:https://codingfantasy.com/games/css-grid-attack/play
这款游戏是由《 Flexbox adventure 》的同一个作者开发的,游戏体验也非常的好。
在游戏中,我们必须使用CSS网格来改变土地,使恶魔无法生存。它有80个关卡,让我们可以选择超级有趣的方式学习CSS网格。
地址:https://flukeout.github.io/
CSS Diner 是一个学习CSS选择器的游戏。通过题目,我们需要写出具体的css 选择器来选择餐桌上指定的物品才算过关。当我们选中物品时,会出现有趣的动画特效,来增加我们的游戏体验。
地址:https://www.guess-css.app/
这个游戏与CSS Diner非常相似,给出一个画面,然后提供3上选项,我们根据已有的知识在脑海里构造我们的答案,然后从3个选项,选择一个我们认为的正确答案即可过关。
地址:https://css-speedrun.netlify.app/
在这个游戏中,我们要根据箭头的标志,然后写出对应的CSS选择器,这里有题目的计时,我们必须尽可能快速完成它,对那些喜欢在游戏中增加难度的开发者来说是一个很大的挑战。。
这个游戏有十个级别,你的以多玩几次,以提你解题速度。我在第三题就卡住了,大家道怎么解吗。
参考:https://dev.to/dailydevtips1/10-amazing-games-to-learn-css-382i
考虑文章篇幅的原因,大部分的小游戏、动画我都只放了HTML部分的代码,具体的CSS、JS代码我都打包放在了一起,具体参考文章末尾。
这两个年轻的小鹿相爱。你可以帮助他们在一起吗?
使用Matter.js物理特性和自定义psuedo-rigging进行构建。已更新为固定大小,以防止某些屏幕尺寸出现对齐问题。
主要HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Wanghao | 小鹿亲嘴</title>
<link rel="stylesheet" href="css/style.css">
<link rel="icon" type="image/x-icon" href="https://wanghao221.github.io/favicon.ico">
</head>
<body>
<script>console.clear()</script>
<div class="controls">
<div class="green">
Move the <b>green alpaca</b>
<div class="keys"><kbd data-key="1">1</kbd> & <kbd data-key="2">2</kbd></div>
<small>or mouse/touch</small>
</div>
<div class="mission">Help them <span class="throb">kiss</span>!</div>
<div class="pink">
Move the <b>pink alpaca</b> with
<div class="keys"><kbd data-key="arrowleft">??</kbd> & <kbd data-key="arrowright">?</kbd></div>
<small>or mouse/touch</small>
</div>
</div>
</body>
<script src="https://codepen.io/shshaw/pen/epmrgO"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/matter-js/0.10.0/matter.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.0/TweenMax.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/cash/1.3.4/cash.min.js"></script>
<script src="js/script.js"></script>
</html>
还有CSS和JS代码,列出来的话文章太长了,本文中所有的完整代码都可通过文章末尾的方式获取(CSDN积分下载或者关注公众号啦啦啦好想biu点什么回复情人节表白免费获取)
“想变成小猫
每天挠挠你裤脚
这样你还会把我抱一抱”
当然这里的汉字你可以自由发挥,想不出来好点子也可以参考参考别人写的三行情诗或者网上搜一搜一些用来表白的情话。
HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Wanghao | 变成小猫</title>
<link rel="stylesheet" href="css/style.css">
<link rel="icon" type="image/x-icon" href="https://wanghao221.github.io/favicon.ico">
</head>
<body>
<section class="container">
<h1 class="title">
<div>
<span>想</span>
<span>变</span>
<span>成</span>
<span>小</span>
<span>猫</span>
</div>
<div>
<span>每</span>
<span>天</span>
<span>挠</span>
<span>挠</span>
<span>你</span>
<span>裤</span>
<span>脚</span>
</div>
<div>
<span>这</span>
<span>样</span>
<span>你</span>
<span>还</span>
<span>会</span>
<span>把</span>
<span class='m-left'>我</span>
<span>抱</span>
<span>一</span>
<span>抱</span>
</div>
</h1>
<button class="btn" id="restart-btn">Restart</button>
</section>
<footer>Created by <a href=https://blog.csdn.net/qq_44273429" target='blank'>海拥?</a> @2021.
</footer>
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.6.0/gsap.min.js"></script>
<script src="js/script.js"></script>
</html>
给你所爱之人一个特殊的消息,敞开爱心。CSS3动画使其震撼,并在单击消息后显示。
主要HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Wanghao | 做我女朋友吧</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<!-- 情人节快乐! -->
<div class="bgoverlay">
<div class="container">
<span class="ico">
<span class="ico2"></span>
<span class="title">Click Me</span>
</span>
<div class="endtext">
<span class="close" title="Restart"><i class="fa fa-times"></i></span>
<h1>I love you baby</h1>
<h2>Be my valentine?</h2>
<h3>~Skippy</h3>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</body>
<script src="js/script.js"></script>
</html>
演示地址(第一次打不开的话刷新一下试试):
https://wanghao221.github.io/game/Love-Overflow
主要HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Wanghao | Love Overflow</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="root"></div>
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sass.js/0.11.1/sass.min.js"></script>
<script src="https://unpkg.co/gsap@3/dist/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.1/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.1/umd/react-dom.production.min.js"></script>
<script src="js/script.js"></script>
</html>
“思念如马
自别离
未停蹄”
HTML代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Wanghao | 思念如马</title>
<link rel="stylesheet" href="css/style.css">
<link rel="icon" type="image/x-icon" href="https://wanghao221.github.io/favicon.ico">
</head>
<body>
<div class='console-container'><span id='text'></span>
<div class='console-underscore' id='console'>_</div>
</div>
</body>
<script src="js/script.js"></script>
</html>
主要HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Wanghao | 霓虹灯爱心</title>
<link rel="stylesheet" href="css/style.css">
<link rel="icon" type="image/x-icon" href="https://wanghao221.github.io/favicon.ico">
</head>
<body>
<canvas id="canvas" width="1400" height="600"></canvas>
</body>
<script src="js/script.js"></script>
</html>
这个相册我之前发过,感觉情人节用来表白还是不错的。当然这里的相册可以换成自己的女朋友(没有的话我也没办法)音乐也可以换成自己喜欢的。
基于HTML的3D立方体相册
HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=div, initial-scale=1.0">
<title>love</title>
<link rel="stylesheet" href="./css/program.css">
</head>
<body>
<div class="title">
旋转相册
</div>
<audio controls="controls" autoplay="autoplay"><source src="./video/love.mp3" type="audio/mpeg"/>
Your browser does not support the audio element.
</audio>
<div class="cube">
<!-- 外层立方体 -->
<div class="outer-cube">
<div class="outer-top">
<img src="images/1.jpg"/>
</div>
<div class="outer-bottom">
<img src="images/2.jpg"/>
</div>
<div class="outer-front">
<img src="images/3.jpg"/>
</div>
<div class="outer-back">
<img src="images/4.jpg"/>
</div>
<div class="outer-left">
<img src="images/5.jpg"/>
</div>
<div class="outer-right">
<img src="images/6.jpg"/>
</div>
</div>
<!-- 内层立方体 -->
<div class="inner-cube">
<div class="inner-top">
<img src="images/01.jpg"/>
</div>
<div class="inner-bottom">
<img src="images/02.jpg"/>
</div>
<div class="inner-front">
<img src="images/03.jpg"/>
</div>
<div class="inner-back">
<img src="images/04.jpg"/>
</div>
<div class="inner-left">
<img src="images/05.jpg"/>
</div>
<div class="inner-right">
<img src="images/06.jpg"/>
</div>
</div>
</div>
<div>
<div class="message">
<div class="author">
<a href="https://blog.csdn.net/qq_44273429">海拥制作</a>
</div>
<div class="tip">
温馨提示:鼠标移入移出立方体,将会显示效果!
</div>
</div>
</div>
</body>
</html>
这里我用了61个国家的语言翻译的“爱”组成了一个爱心,特别把我们中国的爱弄得又大又红。
HTML非常简单:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Wanghao | love</title>
<link rel="stylesheet" href="css/style.css">
<link rel="icon" type="image/x-icon" href="https://wanghao221.github.io/favicon.ico">
</head>
<body>
<div class="love"></div>
</body>
<script src="js/script.js"></script>
</html>
JS:
const words=[
'爱', 'Love', 'Amour', 'Liebe', 'Amore',
'Amor', 'Любовь', '????', '?????', 'Cinta',
'Αγ?πη', '??', 'Liefde', 'Dashuri', 'Каханне',
'Ljubav', 'Láska', 'Armastus', 'Mahal', '????',
'Szerelem', 'Grá', 'Mīlestība', 'Meil?', 'Любов',
'?убовта', 'Cinta', '???', 'Dragoste', 'Láska',
'Renmen', '???', 'muna?a', 'Sevgi', '?убав',
'karout', 'amà', 'am?r', 'k?rleiki', 'mborayhu',
'Upendo', 'sòòyayyàà', 'ljubav', '???', 'с?ю',
'с?й??', 'tia', 'aroha', 'KHAIR', '?????',
'kj?rlighet', 'munay', 'jecel', 'K?rlek', 'soymek',
'Mahal', 'ярату', '????', 'sopp', 'uthando',
'???????', 'A?k', 'Tình yêu', '????'];
const dom={
love: document.querySelector('.love')
}
dom.love.style.setProperty('--particles', words.length)
words.forEach((word, i)=> {
let span=document.createElement('span')
span.style.setProperty('--n', i + 1)
span.innerText=word
dom.love.appendChild(span)
})
愿意做我女朋友吗
HTML代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Wanghao | 愿意做我女朋友吗</title>
<link rel="stylesheet" href="css/style.css">
<link rel="icon" type="image/x-icon" href="https://wanghao221.github.io/favicon.ico">
</head>
<body>
<div class="centered">
<h4>Will you be My Girlfriend?</h4>
<input class="no" id="No" type="checkbox" name="answer"/>
<label class="no" for="No">No</label>
<input class="yes" id="Yes" type="checkbox" name="answer"/>
<label class="yes" for="Yes">Yes</label>
<div class="answer--yes"></div>
<div class="answer--no"></div>
</div>
<div class="signature">
<p>Made with <i class="much-heart"></i> by <a href="https://blog.csdn.net/qq_44273429/">海拥CSDN博客</a></p>
</div>
</body>
</html>
HTML代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Wanghao | 我被你所深深吸引</title>
<link rel="stylesheet" href="css/style.css">
<link rel="icon" type="image/x-icon" href="https://wanghao221.github.io/favicon.ico">
</head>
<body>
<div class="container" id="ilu">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewbox="-55 80 400 400" style="enable-background:new 0 0 288 560;" xml:space="preserve">
<g id="heart">
<path class="st1" d="M131.8,310.1v-53.6c0,0-8-10.8-20.5-11s-24,10.2-24.5,26.7s13.3,36.3,45,53v-5.4 C131.8,316.6,131.8,313.3,131.8,310.1z"></path>
<path class="st2" d="M131.8,325.2c0,0,45.2-21.7,45.2-53c0,0,0.8-25.4-22.6-26.7c0,0-13.3-1.2-22.6,11"></path>
</g>
<g id="magnesium">
<path class="st5" d="M229,241h-16.2v24c5.4,0,10.8,0,16.2,0V241z"></path>
<path class="st6" d="M281,241h-16.3v24c5.4,0,10.9,0,16.3,0V241z"></path>
<path class="st7" d="M229,298.3V265c-5.4,0-10.8,0-16.2,0v36c0,0,2.5,24,33.2,23.7c0-5.2,0-10.3,0-15.5 C229.2,309.5,229,298.3,229,298.3z"></path>
<path class="st8" d="M264.7,265v33.7c0,0-1.8,10.2-18.7,10.5c0,5.2,0,10.3,0,15.5c0.3,0,0.6,0,0.9,0c31.6-0.8,34.1-23.3,34.1-23.3 V265C275.6,265,270.1,265,264.7,265z"></path>
</g>
<g id="clip">
<path class="st10" d="M31.3,297.7v-37.2c0,0-0.3-0.8-1.3-0.8c-0.9,0-1.2,0.8-1.2,0.8l0.2,37.8c0,0,0.7,6.6,8.1,6.7 c0-0.7,0-1.5,0-2.2C31.3,302.3,31.3,297.7,31.3,297.7z"></path>
<path class="st11" d="M47.1,249.9c0,0-0.6-7.6-10.1-8.1c0,0.7,0,1.4,0,2.1c5.9,0.4,7.7,5.7,7.7,5.7s-0.1,44.8-0.2,47.9 c0,0,0.5,5.5-7.1,5.3c-0.1,0-0.3,0-0.4,0c0,0.7,0,1.5,0,2.2c0.1,0,0.1,0,0.2,0c9.9,0.2,9.7-7,9.7-7L47.1,249.9z"></path>
<path class="st10" d="M36.7,241.8c-10.5-0.3-11.5,8.1-11.5,8.1l0.2,64.8c0,0,1.1,9.9,11.6,10.1c0-0.8,0-1.6,0-2.4 c-8.3-0.1-9.1-8.1-9.1-8.1s-0.1-62.9-0.2-64.4c-0.2-1.5,2.8-5.8,8.6-5.9c0.3,0,0.5,0,0.8,0c0-0.7,0-1.5,0-2.1 C36.9,241.9,36.8,241.8,36.7,241.8z"></path>
<path class="st11" d="M50.5,260.4c0,0-0.4-0.8-1.2-0.8c-0.9,0-1.3,0.8-1.3,0.8l0,53.7c0,0,0.2,8.4-10.8,8.3c0,0-0.1,0-0.1,0 c0,0.8,0,1.6,0,2.4c0.1,0,0.2,0,0.3,0c12.7,0,13.1-10,13.1-10C50.3,315.1,50.5,260.4,50.5,260.4z"></path>
</g>
</svg>
</div>
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/latest/TweenMax.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.17.0/easing/EasePack.min.js"></script>
<script src="js/script.js"></script>
</html>
HTML代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Wanghao | 想对你说的话都在抽屉里</title>
<link rel="stylesheet" href="css/style.css">
<link rel="icon" type="image/x-icon" href="https://wanghao221.github.io/favicon.ico">
</head>
<body>
<div class="chest">
<div class="chest__panel chest__panel--back"></div>
<div class="chest__panel chest__panel--front">
<div class="chest__panel chest__panel--front-frame"></div>
</div>
<div class="chest__panel chest__panel--top"></div>
<div class="chest__panel chest__panel--bottom"></div>
<div class="chest__panel chest__panel--left"></div>
<div class="chest__panel chest__panel--right"></div>
<div class="chest-drawer chest-drawer--top">
<details>
<summary></summary>
</details>
<div class="chest-drawer__structure">
<div class="chest-drawer__panel chest-drawer__panel--left"></div>
<div class="chest-drawer__panel chest-drawer__panel--right"></div>
<div class="chest-drawer__panel chest-drawer__panel--bottom"></div>
<div class="chest-drawer__panel chest-drawer__panel--back">You</div>
</div>
</div>
<div class="chest-drawer chest-drawer--middle">
<details>
<summary></summary>
</details>
<div class="chest-drawer__structure">
<div class="chest-drawer__panel chest-drawer__panel--left"></div>
<div class="chest-drawer__panel chest-drawer__panel--right"></div>
<div class="chest-drawer__panel chest-drawer__panel--bottom"></div>
<div class="chest-drawer__panel chest-drawer__panel--back">Are</div>
</div>
</div>
<div class="chest-drawer chest-drawer--bottom">
<details>
<summary></summary>
</details>
<div class="chest-drawer__structure">
<div class="chest-drawer__panel chest-drawer__panel--left"></div>
<div class="chest-drawer__panel chest-drawer__panel--right"></div>
<div class="chest-drawer__panel chest-drawer__panel--bottom"></div>
<div class="chest-drawer__panel chest-drawer__panel--back">Mine</div>
</div>
</div>
</div>
</body>
</html>
以上所有代码演示地址放在这里(打不开可以刷新一下)
Wanghao | Love
#34;夏哉ke":quangneng.com/5065/
HTML5的介绍和案例实战
HTML5 是 HTML 的第五个主要版本,是用于构建和呈现网页内容的最新标准。它引入了许多新特性和改进,使得开发者能够创建更丰富、更交互性的网页应用。HTML5 的一些主要特性包括:
案例实战可以是:
这些案例实战可以帮助开发者熟悉 HTML5 的各种特性和用法,并在实际项目中应用它们来构建丰富、交互性强的网页应用。
CSS3的介绍和案例实战
CSS3 是 CSS 的第三个主要版本,是用于样式化网页内容的最新标准。它引入了许多新特性和改进,使得开发者能够创建更漂亮、更交互性的网页设计。CSS3 的一些主要特性包括:
案例实战可以是:
这些案例实战可以帮助开发者熟悉 CSS3 的各种特性和用法,并在实际项目中应用它们来实现各种炫酷的网页设计效果。
JavaScript的介绍和案例实战:
JavaScript 是一种高级的、动态的、解释性的编程语言,主要用于为网页添加交互性和动态功能。它是 Web 开发中最常用的脚本语言之一,可以直接嵌入到 HTML 中,也可以作为外部文件引入到 HTML 页面中。
JavaScript 的特点包括:
案例实战可以是:
这些案例实战可以帮助开发者熟悉 JavaScript 的语法和常用操作,理解 JavaScript 在网页开发中的应用场景,从而更好地运用 JavaScript 来实现各种动态和交互式的功能。
*请认真填写需求信息,我们会在24小时内与您取得联系。