快速使用HTML、CSS、JavaScript编写一个简单计算器

目录

一、编写HTML结构

1.1 创建文件

二、编写CSS样式

2.1 编写好看样式

2.2 引入css样式

三、编写JavaScript逻辑代码

3.1 创建操作文件

3.2 引入js文件

3.3 整体代码

四、运行


一、编写HTML结构

1.1 创建文件

我们在项目目录当中创建一个 名为 index.html的文件,在文件中编写以下内容。

以下主要用到了div块级标签和button按钮, onclick是处理按钮的点击事件。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>香菜的计算器</title>
  </head>
  <body>
    <div class="calculator">
      <div class="display" id="display">0</div>
      <div class="keys">
        <button onclick="appendToDisplay('7')">7</button>
        <button onclick="appendToDisplay('8')">8</button>
        <button onclick="appendToDisplay('9')">9</button>
        <button onclick="operate('+')" class="option">+</button>
        <button onclick="appendToDisplay('4')">4</button>
        <button onclick="appendToDisplay('5')">5</button>
        <button onclick="appendToDisplay('6')">6</button>
        <button onclick="operate('-')" class="option">-</button>
        <button onclick="appendToDisplay('1')">1</button>
        <button onclick="appendToDisplay('2')">2</button>
        <button onclick="appendToDisplay('3')">3</button>
        <button onclick="operate('*')" class="option">×</button>
        <button onclick="appendToDisplay('0')">0</button>
        <button onclick="appendToDisplay('.')">.</button>
        <button onclick="calculate()" class="option">=</button>
        <button onclick="operate('/')" class="option">÷</button>
        <button onclick="clearDisplay()" class="option">C</button>
      </div>
    </div>
  </body>
</html>

二、编写CSS样式

2.1 编写好看样式

因为HTML结构是比较单一化的,我们需要使用CSS样式对它进行美化。

首先在根目录下创建一个名为 css的目录, 在css目录下创建 main.css样式文件。

代码如下:

body {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    margin: 0;
  }
  .calculator {
    background: rgba(78, 78, 82, 0.5);
    border-radius: 10px;
    padding: 20px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  }
  .display {
    font-size: 2em;
    padding: 10px;
    background-color: #22242980; /* 50% 半透明 */
    text-align: right;
    color: #e8e9e9;
    border-radius: 5px;
    margin-bottom: 10px;
  }
  .keys {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 10px;
  }
  button {
    padding: 10px;
    font-size: 1.2em;
    border: none;
    border-radius: 5px;
    background-color: #7a7a7d;
    color: #ffffff;
    cursor: pointer;
    transition: background-color 0.3s;
  }
  button:hover {
    background-color: #d0d0d0;
  }

  button.option {
    background: #ff9727;
  }

2.2 引入css样式

 在index.html 文件的 head标签中,我们要引入css样式,编写以下标签。

<link rel="stylesheet" href="css/main.css">

三、编写JavaScript逻辑代码

3.1 创建操作文件

我们现在有了结构和样式,但是缺少具体的操作。需要使用JavaScript来实现具体的计算操作。

首先创建一个名为 js的目录,在js目录下创建calculartor.js文件。

代码如下

// 当前输入的值,初始值为0
let currentInput = "0";

// 当前操作符,默认为null
let currentOperator = null;

// 第一操作数,默认为null
let firstOperand = null;

// 将数字或小数点添加到显示屏上
function appendToDisplay(value) {
  if (currentInput === "0" && value !== ".") {
    // 如果当前输入为0,并且value不是小数点,直接用value替换currentInput
    currentInput = value;
  } else {
    // 否则,在currentInput后面追加value
    currentInput += value;
  }
  // 更新显示屏上的内容
  document.getElementById("display").innerText = currentInput;
}

// 清空显示屏
function clearDisplay() {
  currentInput = "0";
  document.getElementById("display").innerText = currentInput;
}

// 记录当前操作符,并将当前输入值作为第一操作数
function operate(operator) {
  if (currentOperator !== null) {
    // 如果当前已经记录有操作符,则先计算结果
    calculate();
  }
  // 记录第一操作数为当前输入值
  firstOperand = currentInput;

  // 记录当前操作符
  currentOperator = operator;

  // 将当前输入值重置为0
  currentInput = "0";
}

// 根据当前操作符和第二操作数计算结果,并将结果显示在屏幕上
function calculate() {
  // 如果当前未记录操作符或第一操作数,则直接返回
  if (currentOperator === null || firstOperand === null) return;

  let result;

  // 获取第二操作数
  const secondOperand = currentInput;

  // 根据当前操作符进行计算
  switch (currentOperator) {
    case "+":
      result = parseFloat(firstOperand) + parseFloat(secondOperand);
      break;
    case "-":
      result = parseFloat(firstOperand) - parseFloat(secondOperand);
      break;
    case "*":
      result = parseFloat(firstOperand) * parseFloat(secondOperand);
      break;
    case "/":
      result = parseFloat(firstOperand) / parseFloat(secondOperand);
      break;
    default:
      // 如果操作符不是加、减、乘、除,则直接返回
      return;
  }

  // 将计算结果更新为当前输入值
  currentInput = result.toString();

  // 重置当前操作符和第一操作数
  currentOperator = null;
  firstOperand = null;

  // 更新显示屏上的内容
  document.getElementById("display").innerText = currentInput;
}

3.2 引入js文件

在index.html文件中的 body标签下,编写以下内容。

 <script src="js/calculartor.js"></script>

3.3 整体代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>香菜的计算器</title>
    <link rel="stylesheet" href="css/main.css">
  </head>
  <body>
    <div class="calculator">
      <div class="display" id="display">0</div>
      <div class="keys">
        <button onclick="appendToDisplay('7')">7</button>
        <button onclick="appendToDisplay('8')">8</button>
        <button onclick="appendToDisplay('9')">9</button>
        <button onclick="operate('+')" class="option">+</button>
        <button onclick="appendToDisplay('4')">4</button>
        <button onclick="appendToDisplay('5')">5</button>
        <button onclick="appendToDisplay('6')">6</button>
        <button onclick="operate('-')" class="option">-</button>
        <button onclick="appendToDisplay('1')">1</button>
        <button onclick="appendToDisplay('2')">2</button>
        <button onclick="appendToDisplay('3')">3</button>
        <button onclick="operate('*')" class="option">×</button>
        <button onclick="appendToDisplay('0')">0</button>
        <button onclick="appendToDisplay('.')">.</button>
        <button onclick="calculate()" class="option">=</button>
        <button onclick="operate('/')" class="option">÷</button>
        <button onclick="clearDisplay()" class="option">C</button>
      </div>
    </div>
    <script src="js/calculartor.js"></script>
  </body>
</html>

四、运行

  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是使用Vue编写简单计算器HTML部分: ```html <div id="app"> <div class="calculator"> <input type="text" v-model="display" disabled> <div class="buttons"> <button @click="addNumber(7)">7</button> <button @click="addNumber(8)">8</button> <<button @click="addNumber(9)">9</button> <<button @click="addOperator('+')">+</button> <button @click="addNumber(4)">4</button> <button @click="addNumber(5)">5</button> <button @click="addNumber(6)">6</button> <button @click="addOperator('-')">-</button> <button @click="addNumber(1)">1</button> <button @click="addNumber(2)">2</button> <button @click="addNumber(3)">3</button> <button @click="addOperator('*')">*</button> <button @click="addNumber(0)">0</button> <button @click="addDecimal()">.</button> <button @click="calculate()">=</button> <button @click="addOperator('/')">/</button> <button @click="clear()">C</button> </div> </div> </div> ``` CSS部分: ```css .calculator { width: 300px; margin: auto; text-align: center; } input { width: 100%; height: 50px; margin-bottom: 10px; font-size: 24px; text-align: right; } button { width: 50px; height: 50px; margin: 5px; font-size: 24px; background-color: #f0f0f0; border-radius: 5px; border: none; cursor: pointer; } ``` JavaScript部分: ```javascript new Vue({ el: "#app", data: { display: "0", operator: null, firstNumber: null, secondNumber: null, result: null }, methods: { addNumber(number) { if (this.display === "0") { this.display = number.toString(); } else { this.display += number.toString(); } }, addDecimal() { if (!this.display.includes(".")) { this.display += "."; } }, addOperator(operator) { this.operator = operator; this.firstNumber = parseFloat(this.display); this.display = "0"; }, calculate() { this.secondNumber = parseFloat(this.display); switch (this.operator) { case "+": this.result = this.firstNumber + this.secondNumber; break; case "-": this.result = this.firstNumber - this.secondNumber; break; case "*": this.result = this.firstNumber * this.secondNumber; break; case "/": this.result = this.firstNumber / this.secondNumber; break; } this.display = this.result.toString(); }, clear() { this.display = "0"; this.operator = null; this.firstNumber = null; this.secondNumber = null; this.result = null; } } }); ``` 这是一个非常简单的计算器,只实现了加、减、乘、除四个基本运算。你可以根据需要进行扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序是我的命

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值