打造极致计算器:HTML+Tailwind+DaisyUI实战

一、计算器总体描述

        创建一个在线计算器来实现基础数学运算功能,通过单一页面集成数字按钮、运算符按钮和显示结果区域,界面采用简洁直观的布局设计,按钮排列合理且提供即时运算反馈,确保计算逻辑准确和良好的按键响应体验,整体页面风格高端大气,视觉效果精致专业。

        创建一个高端大气的计算器页面,使用HTML + Tailwind CSS + DaisyUI实现。这个计算器将包含以下功能:

  1. 数字按钮0-9
  2. 基本运算符(加减乘除)
  3. 清除和等于功能
  4. 实时显示计算结果
  5. 响应式设计,适配不同设备

二、代码实现

<!DOCTYPE html>
<html lang="zh-CN" data-theme="light">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>高级计算器</title><script src="https://cdn.tailwindcss.com"></script><link href="https://cdn.jsdelivr.net/npm/daisyui@3.9.4/dist/full.css" rel="stylesheet" type="text/css" /><style>.btn-calc {transition: all 0.2s ease;}.btn-calc:active {transform: scale(0.95);}</style>
</head>
<body class="min-h-screen bg-base-200 flex items-center justify-center p-4"><div class="card w-full max-w-md bg-base-100 shadow-xl"><div class="card-body"><h2 class="card-title text-2xl font-bold mb-4">高级计算器</h2><!-- 显示屏 --><div class="bg-base-300 rounded-lg p-4 mb-6"><div id="display" class="text-right text-3xl font-mono h-12 overflow-x-auto">0</div><div id="operation" class="text-right text-sm text-gray-500 h-5"></div></div><!-- 按钮区 --><div class="grid grid-cols-4 gap-3"><!-- 第一行 --><button onclick="clearAll()" class="btn-calc btn btn-error col-span-2">AC</button><button onclick="backspace()" class="btn-calc btn btn-secondary">⌫</button><button onclick="appendOperator('/')" class="btn-calc btn btn-accent">÷</button><!-- 第二行 --><button onclick="appendNumber('7')" class="btn-calc btn">7</button><button onclick="appendNumber('8')" class="btn-calc btn">8</button><button onclick="appendNumber('9')" class="btn-calc btn">9</button><button onclick="appendOperator('*')" class="btn-calc btn btn-accent">×</button><!-- 第三行 --><button onclick="appendNumber('4')" class="btn-calc btn">4</button><button onclick="appendNumber('5')" class="btn-calc btn">5</button><button onclick="appendNumber('6')" class="btn-calc btn">6</button><button onclick="appendOperator('-')" class="btn-calc btn btn-accent">-</button><!-- 第四行 --><button onclick="appendNumber('1')" class="btn-calc btn">1</button><button onclick="appendNumber('2')" class="btn-calc btn">2</button><button onclick="appendNumber('3')" class="btn-calc btn">3</button><button onclick="appendOperator('+')" class="btn-calc btn btn-accent">+</button><!-- 第五行 --><button onclick="appendNumber('0')" class="btn-calc btn col-span-2">0</button><button onclick="appendNumber('.')" class="btn-calc btn">.</button><button onclick="calculate()" class="btn-calc btn btn-primary">=</button></div></div></div><script>let currentInput = '0';let previousInput = '';let operation = null;let resetInput = false;function updateDisplay() {const display = document.getElementById('display');const operationDisplay = document.getElementById('operation');display.textContent = currentInput;operationDisplay.textContent = previousInput + (operation ? ' ' + operation : '');}function appendNumber(number) {if (currentInput === '0' || resetInput) {currentInput = number;resetInput = false;} else {currentInput += number;}updateDisplay();}function appendOperator(op) {if (operation !== null) calculate();previousInput = currentInput;operation = op;resetInput = true;updateDisplay();}function calculate() {let result;const prev = parseFloat(previousInput);const current = parseFloat(currentInput);if (isNaN(prev) || isNaN(current)) return;switch (operation) {case '+':result = prev + current;break;case '-':result = prev - current;break;case '*':result = prev * current;break;case '/':result = prev / current;break;default:return;}currentInput = result.toString();operation = null;previousInput = '';resetInput = true;updateDisplay();}function clearAll() {currentInput = '0';previousInput = '';operation = null;updateDisplay();}function backspace() {if (currentInput.length === 1) {currentInput = '0';} else {currentInput = currentInput.slice(0, -1);}updateDisplay();}</script>
</body>
</html>

三、运行效果

 

计算器页面已成功创建并运行。包含以下特性:

  1. 支持加减乘除基本运算
  2. 实时显示输入和计算结果
  3. 清除(AC)和退格(⌫)功能
  4. 小数点输入支持
  5. 响应式按钮动画效果
  6. 美观的DaisyUI主题界面

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

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

相关文章

基于mediapipe深度学习的虚拟画板系统python源码

目录 1.前言 2.算法运行效果图预览 3.算法运行软件版本 4.部分核心程序 5.算法仿真参数 6.算法理论概述 7.参考文献 8.算法完整程序工程 1.前言 虚拟画板系统基于计算机视觉与深度学习技术&#xff0c;通过摄像头捕获用户手部动作&#xff0c;利用 MediaPipe框架实现手…

开源的JT1078转GB28181服务器

JT1078转GB28181流程 项目地址&#xff1a; JT1078转GB28181的流媒体服务器: https://github.com/lkmio/lkm JT1078转GB28181的信令服务器: https://github.com/lkmio/gb-cms 1. 创建GB28181 UA 调用接口: http://localhost:9000/api/v1/jt/device/add 请求体如下&#xf…

元器件基础学习笔记——双极结型晶体管 (BJT)

一、概述 1.1 基本结构 双极结型晶体管&#xff08;Bipolar Junction Transistor&#xff09;由发射极&#xff08;Emitter&#xff09;、基极&#xff08;Base&#xff09;和集电极&#xff08;Collector&#xff09;三个掺杂程度不同的半导体区域组成&#xff0c;分别对应有…

Python 在金融中的应用- Part 1

早在2018年,我开始对资本市场产生兴趣。理解资本市场的基本理论对财富积累至关重要。我开始阅读所有经典著作,如《聪明的投资者》和《证券分析》。在这一系列文章中,我想与读者分享在Python编程语言背景下理解金融理论的旅程。在文章的第一大部分,我们将专注于金融模型的线…

css使用scoped之后样式失效问题

项目中的vue代码原本用的style标签来写css&#xff0c;现在想改成<style langscss scoped>&#xff0c;但是改完之后发现样式不对&#xff1a; 原来是&#xff1a; 将style改成scoped之后变成了&#xff1a;检查发现是之前定义的一些变量无法被识别&#xff0c;导致这些样…

基于 GitLab CI + Inno Setup 实现 Windows 程序自动化打包发布方案

在 Windows 桌面应用开发中&#xff0c;实现自动化构建与打包发布是一项非常实用的工程实践。本文以我在开发PackTes项目时的为例&#xff0c;介绍如何通过 GitLab CI 配合 Inno Setup、批处理脚本、Qt 构建工具&#xff0c;实现版本化打包并发布到共享目录的完整流程。 项目地…

能源领域新兴技术论坛:EMQ 实时数据引擎构建工业智能中枢

5 月 26 日&#xff0c;由沙特阿美亚洲公司主办的能源领域新兴技术论坛在上海顺利举行。本次论坛聚焦智能工厂、无人机与机器人、可靠性与完整性、先进材料四大技术赛道&#xff0c;吸引了来自全球的能源企业、技术供应商及行业专家。 作为业内知名的 MQ AI 实时数据与智能产…

【计算机网络】第2章:应用层—DNS

目录 一、PPT 二、总结 DNS&#xff08;域名系统&#xff09;详解 &#xff08;一&#xff09;DNS核心概念 &#xff08;二&#xff09;DNS查询过程&#xff08;重点❗&#xff09; &#xff08;三&#xff09;DNS资源记录&#xff08;RR&#xff09;类型…

PHP HTTP 完全指南

PHP HTTP 完全指南 引言 PHP 作为一种流行的服务器端脚本语言,广泛应用于各种Web开发项目中。HTTP(超文本传输协议)是互联网上应用最为广泛的网络协议之一,用于在Web服务器和客户端之间传输数据。本文将详细介绍 PHP 在 HTTP 通信中的应用,帮助开发者更好地理解和利用 P…

C++测开,自动化测试,业务(第一段实习)

目录 &#x1f33c;前言 一&#xff0c;实习经历怎么写简历 &#x1f339;业务理解 &#x1f382;结构化表达 二&#xff0c;实习 &#x1f982;技术和流程卡点 &#x1f511;实习收获 / 代码风格 三&#xff0c;测试理论&#xff0c;用例设计&#xff0c;工具链 &…

NodeJS全栈开发面试题讲解——P5前端能力(React/Vue + API调用)

✅ 5.1 如何使用 React/Vue 发起后端请求&#xff1f;用什么库&#xff1f; 面试官您好&#xff0c;在实际项目中我们通常使用 axios、fetch 或框架提供的封装库发起后端请求。 &#x1f527; 常用库对比&#xff1a; 库框架适配优点axios通用默认支持拦截器、取消请求、请求体…

【C/C++】cmake实现Release版本禁用调试接口技巧

在 C 中通过 CMake 实现部分接口在 Release 版本不生效&#xff0c;可以通过条件编译结合 CMake 的构建类型判断来实现。以下是详细步骤&#xff1a; 1. 在 CMakeLists.txt 中定义配置相关宏 # 设置构建类型&#xff08;可选&#xff0c;但推荐显式设置&#xff09; if(NOT C…

Spring Boot中的WebSocket技术实现

WebSocket协议基础 WebSocket作为现代实时通信的核心技术,通过全双工TCP通道实现了接近实时的数据传输能力。该协议主要包含以下核心特性: 协议特点与通信机制 全双工通信:与HTTP等传统协议不同,WebSocket允许客户端和服务端同时发送和接收数据,消除了请求-响应模式的限…

无法发布到PowerBI?试试拆分它

无法发布到PowerBI&#xff1f;试试拆分它 在进行PowerBI发布时&#xff0c;可能会遇到如下两种无法发布到PowerBI的情况&#xff1a; 第一种&#xff0c;文件太大&#xff0c;无法发布&#xff0c;如图&#xff1a; 第二种&#xff1a;远程主机强迫关闭了一个现有的连接&…

光伏功率预测 | LSTM多变量单步光伏功率预测(Matlab完整源码和数据)

光伏功率预测 | MATLAB实现基于LSTM长短期记忆神经网络的光伏功率预测 目录 光伏功率预测 | MATLAB实现基于LSTM长短期记忆神经网络的光伏功率预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 光伏功率预测 | LSTM多变量单步光伏功率预测&#xff08;Matlab完整源码和…

【图像处理入门】2. Python中OpenCV与Matplotlib的图像操作指南

一、环境准备 import cv2 import numpy as np import matplotlib.pyplot as plt# 配置中文字体显示&#xff08;可选&#xff09; plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False二、图像的基本操作 1. 图像读取、显示与保存 使用OpenCV…

数据库系统概论(十一)SQL 集合查询 超详细讲解(附带例题表格对比带你一步步掌握)

数据库系统概论&#xff08;十一&#xff09;SQL 集合查询 超详细讲解&#xff08;附带例题表格对比带你一步步掌握&#xff09; 前言一、什么是集合查询&#xff1f;二、集合操作的三种类型1. 并操作2. 交操作3. 差操作 三、使用集合查询的前提条件四、常见问题与注意事项五、…

如何设计一个支持线上线下的通用订单模块 —— 面向本地生活服务行业的架构思路

一、背景与目标 在本地生活服务行业中&#xff0c;订单模块作为连接用户、商户、商品、支付、履约的核心组件&#xff0c;支撑着平台内多样化的业务形态&#xff0c;例如外卖配送、到店服务、团购核销、即时零售、预约预订、线下消费等。 设计一个可支持线上线下融合的通用订…

Django数据库连接报错 django.db.utils.NotSupportedError: MySQL 8 or later is required

可尝试换django版本 pip install django3.2.13 另外mysql下载地址 https://dev.mysql.com/downloads/installer/ 安装可以参考&#xff1a; https://blog.csdn.net/HHHQHHHQ/article/details/148125549 重点&#xff1a;用户变量添加 C:\Program Files\MySQL\MySQL Server …

github 提交失败,连接不上

1. 第一种情况&#xff0c;开了加速器&#xff0c;导致代理错误 删除hosts文件里相关的github代理地址 2. 有些ip不支持22端口连接,改为443连接 ssh -vT gitgithub.com // 命令执行结果 OpenSSH_for_Windows_9.5p1, LibreSSL 3.8.2 debug1: C…