HTML表单和CSS属性以及DOM实现网页版计算器

news2024/12/24 8:10:42

目录

1、效果展示

2、源码

2.1HTML+CSS源码

2.2JS源码

3、CSS属性

3.1width、height属性

3.2font-size属性

3.3margin属性

3.4padding属性

3.5background-color属性

3.6border属性

3.7border-radius属性

3.8text-align属性

4、DOM

4.1根据id获取元素

4.2根据name获取元素

4.3根据类名获取元素

4.4根据css选择器获取元素

1、效果展示

加法:

 减法:

 乘法:

 除法:

 除数为0:


2、源码

2.1HTML+CSS源码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="cal.js"></script>
		<style>
			* {
				margin: 0;
				padding: 0;
			}
			.cal {
				width: 400px;
				background-color: skyblue;
				margin: 50px auto;
				border-radius: 10px;
			}
			.cal h1 {
				background-color: rebeccapurple;
				height: 60px;
				line-height: 60px;
				border-radius: 10px 10px 0  0;
				text-align: center;
				color: azure;
			}
			.from-control {
				padding: 25px 50px;
			}
			.form-control label {
				text-align: right;
			}
			.form-control,input {
				padding: 5px 10px;
				height: 20px;
				border: 1px black;
				border-radius: 5px;
			}
			.form-control,button{
				width: 67px;
				height: 32px;
				font-size: 25px;
				border-radius: 5px;
				border: none;
				background-color: forestgreen;
			}
			.result {
			
				height: 25px;
				width: 200px;
			}
		</style>
	</head>
	<body>
		<div class="cal">
			<h1>COUNTER</h1>
			<div class="from-control">
				<label>NumberOne</label>
				<input type="text" id="num1"/>
			</div>
			<div class="from-control">
				<label>NumberTwo</label>
				<input type="text" id="num2"/>
			</div>
			<div class="from-control">
				<button id="plus">+</button>
				<button id="reduce">-</button>
				<button id="mul">*</button>
				<button id="dev">/</button>
			</div>
			<div class="from-control">
				<label >RESULT</label>
				<input type="text" class="result"/>
			</div>
		</div>
	</body>
</html>

2.2JS源码

window.addEventListener('load',function(){
	document.querySelector('#plus').onclick = function() {
		cal('+');
	}
	document.querySelector('#reduce').onclick = function() {
		cal('-');
	}
	document.querySelector('#mul').onclick = function() {
		cal('*');
	}
	document.querySelector('#dev').onclick = function() {
		cal('/');
	}
	function cal(symbom) {
		let num1 = document.getElementById('num1').value;
		let num2 = document.getElementById('num2').value;
		
		let result = document.querySelector('.result');
		
		if(symbom == '/') {
			if(num2 == 0) {
				result.value = "除数不能为零";
			}else {
				result.value = num1 / num2;
			}
		}else {
			result.value = eval(num1 + symbom + num2);
		}
	}
})

3、CSS属性

3.1width、height属性

width设置宽度,height设置高度。

	<body>
		<input type="button" value="按钮"/>
	</body>

 原始的按钮大小:

 经过width、height修饰后:

	<style>
		#but{
			height: 60px;
			width: 100px;
		}
	</style>
	<body>
		<input type="button" value="按钮" id="but"/>
	</body>


3.2font-size属性

font-size是设置字体大小大小的属性,它的常见单位为px。如,将一段话的字体设置为30px:


	<style>
		.title {
			font-size: 30px;
		}
	</style>
	<body>
		<a class="title">这是一段话</a>
	</body>

 经过font-size修饰后:


3.3margin属性

margin属性是修饰边距的一个属性,margin拥有四个参数值。因此,有四种边距情况。

情况1

margin:10px,15px,20px,30px;
  • 上外边距是 10px
  • 右外边距是 15px
  • 下外边距是 20px
  • 左外边距是 30px

情况2

margin:20px,30px,15px
  • 上外边距是 20px
  • 右外边距是 30px
  • 下外边距是 15px

情况3

margin:10px,20px
  • 上外边距是 10px
  • 右外边距是 20px

情况4

margin:50px
  • 四个边距都是 50px

我们拿四个边距的情况来展示效果:

	<style>
		.ty {
			margin:50px ;
		}
	</style>
	<body>
		<div class="ty">
			<label>这是一个label:</label>
			<input type="text" />
		</div>

	</body>


3.4padding属性

上面我们知道了margin是设置外边距的,那么内边距是由padding来修饰的,也是有四种情况:

情况1

padding:10px,5px,15px,20px;
  • 上内边距是 10px
  • 右内边距是 5px
  • 下内边距是 15px
  • 左内边距是 20px

情况2

padding:10px,5px,15px;
  • 上内边距是 10px
  • 右内边距和左内边距是 5px
  • 下内边距是 15px

情况3

padding:10px,5px;
  • 上内边距和下内边距是 10px
  • 右内边距和左内边距是 5px

情况4

padding:100px;
  •  上、下、左、右内边距是 100px

我们情况4来举例:

	<style>
		.test {
			padding: 50px;
		}
	</style>
	<body>
		<table border="1">
			<tr><td class="test"></td></tr>
		</table>
	</body>

效果显示:


3.5background-color属性

background-color属性实现的效果就是背景颜色,如将一段文本的背景颜色设置为天蓝色:


	<style>
		.title {
			background-color: skyblue;
		}
	</style>
	<body>
		<a class="title">这是一段话</a>
	</body>

 显示效果:


3.6border属性

border属性是修饰边框的一个属性,我们可以设置边框的大小以及边框的颜色。语法为:border: 大小 solid 颜色;如果我们只有大小没有solid值的话,默认颜色为黑色。

	<style>
		.ty {
			border: 2px solid red;
		}
	</style>
	<body>
		<label>这是一个label:</label>
		<input type="text" class="ty"/>
	</body>


3.7border-radius属性

border-radius属性是修饰边框的“圆润程度”也就是为元素添加圆角边框,语法为:border-radius: 大小;如将一个边框设置圆角边框为10px程度。

	<style>
		.ty {
			border-radius: 10px;
		}
	</style>
	<body>
		<label>这是一个label:</label>
		<input type="text" class="ty"/>
	</body>

 效果显示:


3.8text-align属性

text-align属性是用来规定文本对齐方式的,对齐方式有left左对齐、center居中对齐、right右对齐。其中left左对齐是默认的对齐方式。

居中对齐

	<style>
		.test {
			text-align: center;
		}
	</style>
	<body>
		<h1 class="test">这是一个标题</h1>
	</body>

效果显示:

右对齐: 

	<style>
		.test {
			text-align: right;
		}
	</style>
	<body>
		<h1 class="test">这是一个标题</h1>
	</body>

 效果展示:


4、DOM

4.1根据id获取元素

document.getElementById是根据id来获取元素的,如下代码展示:

	<body>
		<div>
			<label>Number:</label>
			<input type="text" id="num1"/>
		</div>
		<div>
			<button id="but">按钮</button>
		</div>
		<script>
			document.getElementById('but').onclick = function() {
				let num = document.getElementById('num1').value;
				console.log(num);
			}	
		</script>
	</body>

当我输入55后,再点击按钮控制台就输出了55:

因此,在上述代码中document.getElementById后面加上.onclick代表着点击这个按钮就做出相应的操作,加上.value代表着获取这个id所对应的值。


4.2根据name获取元素

document.getElementByName是根据name来获取元素

	<body>
		<p>请选择你的兴趣爱好(多选):</p>
		<input type="checkbox" name="sports" value="拳击"/>拳击
		<input type="checkbox" name="sports" value="柔术"/>柔术
		<input type="checkbox" name="sports" value="摔跤"/>摔跤
		<input type="checkbox" name="sports" value="散打"/>散打
		<script>
			var sports = document.getElementsByName('sports');
			console.log(sports[0]);
			console.log(sports[1]);
		</script>
	</body>

上述代码中,我们通过document.getElementsByName('sports')获取到了拳击和柔术这两个表单元素:


4.3根据类名获取元素

document.getElementByClassName是根据class来获取元素

	<body>
		<div>
			<p class="person1">阿珍</p>
			<p class="person2">阿强</p>
		</div>
		<script>
			let person1 = document.getElementsByClassName('person1');
			console.log(person1[0]);
		</script>
	</body>


4.4根据css选择器获取元素

document.querySelector是根据css选择器来获取元素的,如下方代码:

	<body>
		<div class="mma">拳击</div>
		<div class="mma">柔术</div>
		<div class="mma">摔跤</div>
		<script>
			//第一个div
			let firstdiv = document.querySelector('.mma');
			console.log(firstdiv);
			//所有的div
			let alldiv = document.querySelectorAll('.mma');
			console.log(alldiv);
		</script>
	</body>


本编博文主要是对HTML中表单以及CSS属性加上JS中的DOM的一些讲解,文章中详细讲解了各个知识点的实现效果及用法。大家下来了一定要自己尝试去敲代码,只有我们实现了一些页面才能很好的理解这个知识点以及怎样实现某个效果。文章有也多处知识点未实现页面效果大家也可以自行测试一番,感受一下这些知识点的实现效果,加油!

本期博客到这里就结束啦,感谢您的阅读。如有收获还请给博主点个小小的关注,咱们下期再见。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/424837.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

06 - 深度学习处理器原理

一、通用计算机架构 1. 冯诺依曼架构 冯诺依曼架构的特点:(1)使用存储程序的概念,即数据和指令都存储在内存中;(2)由 CPU、内存、输入/输出设备和总线组成,其中 CPU 包括控制单元、算术逻辑单元和寄存器;(3)控制单元按照取指(Fetch)- 译码(Decode)- 执行(Exec…

IM即时通讯-7-如何设计通知提醒

本文大纲 本文从为什么做通知提醒&#xff0c; 以及如何设计通知提醒&#xff0c; 以及如何衡量通知提醒三方面解释了如何设计通知提醒。 对于重点的如何设计通知提醒&#xff0c; 通过拆分前台和后台&#xff0c; 前台采用自建或者二方通道&#xff0c; 后台采用厂商信令通道…

电厂人员定位怎么做?智慧电厂人员定位系统解决方案告诉你答案

伴随着“泛在电力物联网建设”的提出&#xff0c;构建智慧电厂引起重大关注&#xff0c;全国各地纷纷响应。传统电力企业一直面临着人员管控难、生产环境复杂且危险多等问题&#xff0c;物联网技术的兴起使得电厂的数字化和智慧化转型已成为电力企业保障生产作业安全、提升生产…

工具及方法 - Linux下串口工具Minicom

因为调试设备所以需要打开两个串口&#xff0c;也许是开了Ubuntu虚拟机的影响&#xff0c;或其他的问题&#xff0c;经常有一个或两个串口设备工作不正常&#xff0c;需要重启电脑&#xff0c;很麻烦。 原因大概就是设备驱动问题&#xff0c;比如使用MobaXterm这个工具&#x…

基于NXP iMX8M Mini处理器测试DPDK

By Toradex秦海 1). 简介 DPDK (Data Plane Development Kit) 软件是一组用户空间库和驱动程序&#xff0c;可加速在所有主要 CPU 架构上运行的网络数据包处理工作负载&#xff0c;以便提升整个网络数据服务的QoS。其最早由 Intel 大约 2010年创建&#xff0c;后由6WIND公司发…

赛事报名启动丨百度Apollo星火自动驾驶大赛开始报名啦!

作为汽车智能化、网联化的关键环节&#xff0c;自动驾驶成为全球科技界、产业界竞争的新赛道。随着人工智能、5G通信、激光雷达、高精地图等多项技术不断完善&#xff0c;自动驾驶的判断力和理解力得到了显著提升。为了推动自动驾驶技术的发展、加快人工智能技术的迭代&#xf…

超详细的ARM架构适配介绍!

超详细的ARM架构适配介绍&#xff01; - 掘金 本文主要介绍云联壹云平台如何适配ARM&#xff0c;并运行在ARM CPU架构的机器上。 背景介绍 1、平台服务运行架构 云联壹云平台采用容器化&#xff0c;分布式的架构运行在 Kubernetes&#xff08;K8s&#xff09;之上。下面是平…

小白轻松学Spring Cloud

在了解SpringCloud之前&#xff0c;我们先来大致了解下微服务这个概念吧。 传统单体架构 单体架构在小微企业比较常见&#xff0c;典型代表就是一个应用、一个数据库、一个web容器就可以跑起来。 可以从上图看出&#xff0c;单体架构基本上就是如上所说的&#xff1a;一个应用…

【Python】自动化这么简单吗?——百度网盘自动上传文件教程

文章目录前言一、准备二、授权bypy访问百度网盘三、开始使用bypy四、文件上传功能五.文件同步功能总结前言 要使用Python自动上传文件到百度网盘&#xff0c;你可以使用bypy开源模块&#xff0c;它提供了丰富的功能&#xff0c;包括显示文件列表、同步目录、文件上传。 仅支持…

014 - C++ 类

本期我们要讲的是 C 中的类。 我们终于讲到了面向对象编程&#xff0c;这是一种非常流行的编程方式&#xff0c;面向对象编程实际上只是一种你可以采用的编写代码的方式&#xff0c;其他语言例如 C#、Java 这些主要是面向对象的语言&#xff0c;事实上&#xff0c;用这些语言你…

JUC并发工具

JUC并发工具 一、CountDownLatch应用&源码分析 1.1 CountDownLatch介绍 CountDownLatch就是JUC包下的一个工具,整个工具最核心的功能就是计数器。 如果有三个业务需要并行处理,并且需要知道三个业务全部都处理完毕了。 需要一个并发安全的计数器来操作。 CountDown…

Android Linux,Windows 安装,卸载 android studio

Linux安装过程 sudo apt-get install libc6:i386 libncurses5:i386 libstdc6:i386 lib32z1 libbz2-1.0:i386sudo cp -r ./android-studio /usr/local/cd android-studio/cd bin./studio.sh Windows 安装过程 下载安装文件&#xff0c;解压 将解压得到 android-studio 文件夹…

pdf转jpg怎么解决?这五个转换方法快速搞定!

pdf转jpg怎么转&#xff1f;pdf是在我们工作中经常使用的一种办公文件格式类型&#xff0c;但是在某些特殊情况下&#xff0c;我们应该把pdf转jpg图片格式文件&#xff0c;很多人在这种情况下不知道如何把pdf转jpg图片格式文件&#xff0c;接下来我们一起来了解下pdf转jpg转换方…

java设计模式(1) 适配器模式、装饰器模式

适配器模式 适配器就是一种适配中间件&#xff0c;它存在于不匹配的了两者之间&#xff0c;用于连接两者&#xff0c;使不匹配变得匹配。 手机充电需要将220V的交流电转化为手机锂电池需要的5V直流电 知识补充&#xff1a;手机充电器输入的电流是交流&#xff0c;通过变压整流…

MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点1:sys.statement_analysis视图

文章目录MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点1&#xff1a;sys.statement_analysis视图视图sys.statement_analysis各列定义视图sys.statement_analysis视图的定义视图sys.statement_analysis各列解释例题例题解析参考MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点…

5G边缘计算网关用于智能消防安全

随着人们对智能消防安全的需求不断增长&#xff0c;5G边缘计算网关作为一种新型技术&#xff0c;已经被广泛应用于消防设备的智能监控和管理中。本文将介绍5G边缘计算网关在智能消防安全中的应用&#xff0c;并给出一个Python代码示例。 一、5G边缘计算网关在智能消防安全中的应…

OKR系统改变您的团队

使用Zoho Projects易于使用的OKR系统将雄心转化为行动。简化您计划、跟踪和报告团队目标的方式。 一、使用这个强大的OKR工具提升结果 1、自动组织团队的目标 在公司、部门、团队和个人层面创建和跟踪OKR&#xff0c;以实现真正的整体OKR管理。 2、实时跟踪进度 使团队能够使…

阻塞队列 BlockingQueue

阻塞队列&#xff08;BlockingQueue&#xff09;是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除的方法&#xff1a; 支持阻塞的插入方法&#xff1a;当队列满时&#xff0c;队列会阻塞插入元素的线程&#xff0c;直到队列不满&#xff1b;支持阻塞的移除…

HTML5 <header> 标签、HTML5 <html> 标签

HTML5 <header> 标签 实例 HTML5 &#xff0c;<header>标签用来表示介绍性的内容&#xff0c;即&#xff0c;定义了文档中的页眉&#xff0c;请参考下述示例&#xff1a; <article> 的页眉&#xff1a; <article><header><h1>Internet …

SpringSecurity之入门案例

前言 前面一篇文章讲了一些关于SpringSecurity的基本内容、两大核心模块以及学习他所需要的基本技能点。接下来&#xff0c;带大家进入到一个基本的入门案例&#xff01;&#xff01;&#xff01; 操作步骤 1、创建Springboot工程 首先通过idea开发工具&#xff0c;创建一个…