通过实现一个简单的 JavaScript 猜数字大小的游戏,介绍如何进行布局样式处理
JavaScript 猜数字大小是一个非常简单、却又经典的游戏,可以锻炼玩家的逻辑思维能力。在这个游戏中,电脑会随机生成一个数字,玩家需要根据提示逐步猜出正确的数字。接下来,我们将通过实现一个简单的 JavaScript 猜数字大小游戏来介绍如何进行布局样式处理。
HTML 结构
首先,我们需要在 HTML 中定义游戏所需要的元素。根据游戏的功能,我们需要三个核心元素:显示区域、输入区域和按钮区域。其中,显示区域用于展示游戏的提示信息和玩家的猜测结果,输入区域用于接收玩家输入的数字,按钮区域用于触发游戏的开始和重置操作。
<div class="game"> <div class="display"> <p id="message">Guess a number between 1 and 100</p> <p id="result"></p> </div> <div class="input"> <input type="text" id="guess" placeholder="Enter your guess..."> <button id="submit">Submit</button> </div> <div class="buttons"> <button id="start">Start</button> <button id="reset">Reset</button> </div> </div>
由于我们需要进行样式处理,因此在每个元素上都添加了相应的类名。下面,我们将使用 CSS 对这些元素进行布局和样式处理。
CSS 样式
对于游戏的布局样式处理,主要考虑以下几个方面:页面居中显示,宽度自适应,显示区域和输入区域的上下间距,以及按钮区域的水平间距。
.game { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100vh; } .display, .input, .buttons { margin-bottom: 20px; } .input { display: flex; justify-content: center; align-items: center; } #guess { width: 200px; margin-right: 10px; } .buttons button { margin-left: 10px; }
首先,我们将游戏的根元素设置为一个 flex container,使得游戏元素可以竖直居中显示在页面中央。同时,游戏的高度设置为 100vh,使得在不同的设备上都可以占据整个屏幕。
其次,我们通过设置元素的上下外边距来实现显示区域、输入区域和按钮区域的间距效果。具体来说,我们将它们之间的间距设置为 20px。
然后,我们设置输入区域为一个 flex container,并水平居中显示。与此同时,我们设置输入框的宽度为 200px,并在其右侧添加一个按钮。这样,在页面较小的设备上,也不会出现因输入框过长而导致布局错乱的情况。
最后,我们将按钮区域的按钮之间的水平间距设置为 10px,使得它们之间的间距更加紧凑。
JavaScript 交互
最后,我们需要编写 JavaScript 代码,来实现游戏的交互逻辑。这个部分相对来说比较简单,主要是根据玩家的输入和电脑生成的随机数进行比较,并给出相应的提示信息。
// Generate a random number between 1 and 100 let target = Math.floor(Math.random() * 100) + 1; // Get the input field, submit button, and result messages let guessField = document.getElementById("guess"); let submitButton = document.getElementById("submit"); let resultMessage = document.getElementById("result"); // Event listener for submit button submitButton.addEventListener("click", function() { // Get the player's guess let guess = parseInt(guessField.value); if (guess === target) { // The player guessed correctly! resultMessage.innerHTML = "Congratulations! You win!"; } else if (guess > target) { // The player guessed too high resultMessage.innerHTML = "Too high. Try again!"; } else { // The player guessed too low resultMessage.innerHTML = "Too low. Try again!"; } // Clear the input field guessField.value = ""; }); // Event listener for start button document.getElementById("start").addEventListener("click", function() { target = Math.floor(Math.random() * 100) + 1; document.getElementById("message").innerHTML = "Guess a number between 1 and 100"; resultMessage.innerHTML = ""; }); // Event listener for reset button document.getElementById("reset").addEventListener("click", function() { guessField.value = ""; document.getElementById("message").innerHTML = "Guess a number between 1 and 100"; resultMessage.innerHTML = ""; });
在上面的代码中,我们首先使用 Math.random()
方法生成一个随机数,并使用 parseInt()
方法将玩家的输入转换成整数。接着,根据玩家的输入和随机数进行比较,并给出相应的提示信息。同时,我们还编写了事件监听器来处理开始、提交和重置操作。
总结
在本篇文章中,我们通过实现一个简单的 JavaScript 猜数字大小游戏,介绍了如何进行布局样式处理。具体来说,我们使用了 flexbox 和一些常用的 CSS 属性,实现了居中显示、宽度自适应和间距设置等效果。对于不同设备的适配问题,我们也进行了一些简单的处理。最后,我们还编写了 JavaScript 代码来实现游戏的交互逻辑。希望这篇文章能够对大家有所帮助,也欢迎大家多多尝试,进一步探索 CSS 布局和 JavaScript 交互的更多玩法。
相关文章:
通过实现一个简单的 JavaScript 猜数字大小的游戏,介绍如何进行布局样式处理
JavaScript 猜数字大小是一个非常简单、却又经典的游戏,可以锻炼玩家的逻辑思维能力。在这个游戏中,电脑会随机生成一个数字,玩家需要根据提示逐步猜出正确的数字。接下来,我们将通过实现一个简单的 JavaScript 猜数字大小游戏来介…...
Java设计模式(二十二)策略模式
一、概述 策略模式是一种行为型设计模式,它允许在运行时选择算法的行为。策略模式通过将算法封装成独立的策略类,使得它们可以相互替换,而不影响使用算法的客户端。这样可以使客户端代码与具体算法的实现细节解耦,提高了代码的可…...

【沐风老师】一步一步教你在3dMax中进行UVW贴图和展开UVW的方法
将简单或程序材质应用于对象并不难。但是当表面需要在其上显示某种纹理时,它会变得更加复杂。任何纹理贴图都放在材质的 Diffuse 插槽中,但渲染的结果可能无法预测。这就是为什么我们需要了解 3DMAX 如何将纹理应用于 3D 对象,什么是 UVW 贴图…...

Redis主从复制(搭建集群的一种方式)【故障转移,内存,回收】
做一个伪集群 配置文件: daemonize yes port 7777 logfile .redis-7777.log dir ./ bind 0.0.0.0启动6666 and 7777 现在设置主从表 但是有个问题我把服务器停掉 关系就会解除 还可以手动解除 slaveof no one 命令 配置Sentinel(哨兵&#…...

专业专注,极致体验,高端隐形智能晾衣机品牌邦先生官宣浙江卫视知名主持人沈涛为品牌代言人
5月11日,高端隐形晾衣架领导品牌邦先生正式宣布,浙江卫视知名主持人沈涛为品牌代言人,以更高标准的晾晒,共同迎接智能晾晒大时代,用科技力量创造美好智慧家居生活。 专业实力品牌邦先生王牌主持沈涛 作为浙江卫视的“王…...

SpringCloud使用SkyWalking实现分布式链路追踪1
文章目录 一、MicrometerTracingBrave(Sleuth)链路追踪1、MicrometerTracingBrave和Zipkin的概论2、Docker搭建Zipkin服务3、MicrometerTracingBrave和Zipkin实现链路追踪 二、SkyWaking服务的安装与使用1、SkyWalking的概论2、Java探针的环境搭建3、Java探针实现日志监控4、Sk…...

【牛客刷题专栏】0x28:JZ30 包含min函数的栈(C语言编程题)
前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录 前言问…...

聚焦丨酷雷曼荣列XRMA联盟成员单位
自“元宇宙”概念兴起之初,酷雷曼VR所属北京同创蓝天云科技有限公司就积极布局、探索和实践。2022年12月,酷雷曼VR成功加入虚拟现实与元宇宙产业联盟(XRMA),正式被接纳为联盟成员单位,意味着酷雷曼公司将进…...

物联网架构和技术:如何实现物物互联和智能化控制
第一章:引言 物联网是一种新兴的技术领域,通过将物理设备、传感器和软件等连接起来,可以实现设备之间的互联互通,让各种设备可以进行数据交换和智能化控制。在这个数字化时代,物联网已经成为了连接万物的关键技术之一…...

Linux系统查看CPU信息命令cat /proc/cpuinfo详细说明
Linux操作系统服务器如何查看CPU处理器信息?使用命令cat /proc/cpuinfo可以查看CPU详细信息,包括CPU核数、逻辑CPU、物理CPU个数、CPU是否启用超线程等,阿里云服务器网分享Linux服务器查看CPU信息命令: 目录 Linux服务器查看CPU…...

RK3588旗舰32T人工智能多网口边缘智能网关交换机
32T边缘智能网关发布,助力多行业数字化升级,运维降本增效,搭载RK3588旗舰芯 搭载瑞芯微RK3588芯片的边缘智能网关XM-RK3588,算力可扩展至32T,适用于电力能源、智慧交通、智慧城市、智慧安防、智慧医疗、工业互联网等领…...

一行代码绘制高分SCI火山图
一、概述 在近半年中,我读了很多的高分SCI文章,很多文章中都有多种不同的火山图,包括「普通的火山图、渐变火山图、以及包含GO通路信息的火山图」! 经过一段时间的文献阅读和资料查询,终于找到了一个好用而且简单的包…...
chmod是什么?cron是什么?
chmod 和 cron 是 Unix 和类 Unix 系统(如 Linux)的常用命令。 chmod:这是一个命令行工具,用于更改文件或目录的权限。在 Unix 和类 Unix 系统中,每个文件和目录都有一个访问权限集,该集定义了哪些用户可以…...

励志长篇小说《周兴和》书连载之三 十五岁时做父亲
十五岁时做父亲 周兴和的父亲一天天更衰老了。 他母亲身体也越来越是消瘦。近一两年来,她常常感到全身无力、胸口发堵、心慌气紧、吞咽困难,做什么事都力不从心了。 这时,他母亲不知是心血来潮,还是她预感到了什么,出…...

文件一直处于修改状态 git checkout 无法还原的问题解决方法
问题描述 最近在 RT-Thread 时,使用 Git 回退版本验证问题,后来 git pull 拉取最新代码后,发现里面有几个文件,一直为【修改】状态,并且无法还原,git checkout xxx git reset --hard 都用了,依旧…...

Julia入门-3、Julia包管理工具
文章目录 0、Julia 的包管理工具是Pkg1、使用Julia包管理工具过慢 0、Julia 的包管理工具是Pkg Julia 的包管理工具是Pkg,可以用于安装、更新、卸载和管理 Julia 中的软件包。以下是一些常用的 Pkg命令: Pkg.add("Package"):安装一…...
选择正确的 Azure 存储服务
Azure Storage 是 Microsoft 基于云的存储解决方案,提供了全面的现代存储服务。在本文中,我们将探讨各种可用的服务及其特定用例,使您能够选择最适合您需求的服务。 Azure Blob 存储 Azure Blob 存储是一项功能强大且可缩放的存储服务&…...

隐语团队研究成果再创佳绩,两篇论文分别被USENIX ATC‘23和IJCAI‘23接收!
“USENIX ATC年度技术会议”(USENIX ATC,USENIX Annual Technical Conference)是计算机系统领域的顶级学术会议之一。本年度 USENIX ATC’23将于7月10日至12日在美国波士顿召开。本次会议共投稿353篇论文,接收65篇,…...
美团数据指标体系搭建实战
在美团商家版中,美团为商家搭建的数据指标体系,很好的指导了商家的经营发展方向以及提供经营状况概览。 本文通过体验美团商家版经营数据子功能,对美团商家版数据指标体系搭建的情况做出一个概述。 美团商家版的店铺子功能下,…...

prometheus实战之五:飞书通知告警
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《prometheus实战》系列链接 prometheus实战之一:用ansible部署prometheus实战之二:使用常见指标prometheus实战之三:告警…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...