返回
前端神器!HTML/CSS/JS计算器带你走进编程世界
前端
2023-10-15 22:05:40
用 HTML/CSS/JS 制作一个简单计算器的终极指南
使用 HTML/CSS/JS 制作一个简单计算器的完整指南
前言
计算器在我们的日常生活中无处不在,从简单的加减到复杂的方程计算,它们帮助我们轻松地处理数字。本文将逐步指导您使用 HTML、CSS 和 JavaScript 从头开始制作一个简单的计算器。
一、HTML 结构
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="calculator">
<input type="text" id="display" readonly>
<div id="buttons">
<button class="number" value="1">1</button>
<button class="number" value="2">2</button>
<button class="number" value="3">3</button>
<button class="operator" value="+">+</button>
<button class="number" value="4">4</button>
<button class="number" value="5">5</button>
<button class="number" value="6">6</button>
<button class="operator" value="-">-</button>
<button class="number" value="7">7</button>
<button class="number" value="8">8</button>
<button class="number" value="9">9</button>
<button class="operator" value="*">*</button>
<button class="clear" value="c">C</button>
<button class="number" value="0">0</button>
<button class="equals" value="=">=</button>
<button class="operator" value="/">/</button>
</div>
</div>
</body>
</html>
二、CSS 样式
#calculator {
width: 300px;
margin: 0 auto;
padding: 10px;
border: 1px solid #ccc;
}
#display {
width: 100%;
height: 50px;
background-color: #f5f5f5;
text-align: right;
padding: 10px;
}
#buttons {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.button {
width: 50px;
height: 50px;
margin: 5px;
background-color: #ccc;
border: 1px solid #ccc;
cursor: pointer;
}
.number {
background-color: #fff;
}
.operator {
background-color: #f5f5f5;
}
.clear {
background-color: #f5f5f5;
color: #fff;
}
.equals {
background-color: #f5f5f5;
color: #fff;
width: 100%;
}
三、JavaScript 逻辑
const display = document.getElementById('display');
const buttons = document.querySelectorAll('.button');
let firstOperand = null;
let secondOperand = null;
let operator = null;
buttons.forEach((button) => {
button.addEventListener('click', () => {
const value = button.value;
if (value >= '0' && value <= '9') {
if (secondOperand === null) {
firstOperand = firstOperand === null ? value : firstOperand + value;
display.value = firstOperand;
} else {
secondOperand = secondOperand === null ? value : secondOperand + value;
display.value = secondOperand;
}
} else if (value === '+' || value === '-' || value === '*' || value === '/') {
operator = value;
} else if (value === 'c') {
firstOperand = null;
secondOperand = null;
operator = null;
display.value = 0;
} else if (value === '=') {
if (firstOperand !== null && secondOperand !== null && operator !== null) {
let result;
switch (operator) {
case '+':
result = Number(firstOperand) + Number(secondOperand);
break;
case '-':
result = Number(firstOperand) - Number(secondOperand);
break;
case '*':
result = Number(firstOperand) * Number(secondOperand);
break;
case '/':
result = Number(firstOperand) / Number(secondOperand);
break;
}
display.value = result;
firstOperand = result;
secondOperand = null;
operator = null;
}
}
});
});
四、代码示例
<!-- HTML 结构 -->
<div id="calculator">
<input type="text" id="display" readonly>
<div id="buttons">
<button class="number" value="1">1</button>
<!-- 省略其他按钮 -->
<button class="equals" value="=">=</button>
</div>
</div>
/* CSS 样式 */
#calculator {
width: 300px;
margin: 0 auto;
padding: 10px;
border: 1px solid #ccc;
}
/* 省略其他样式 */
/* JavaScript 逻辑 */
const display = document.getElementById('display');
const buttons = document.querySelectorAll('.button');
let firstOperand = null;
let secondOperand = null;
let operator = null;
buttons.forEach((button) => {
button.addEventListener('click', () => {
const value = button.value;
// 省略其他逻辑
});
});
五、常见问题解答
-
如何添加小数支持?
- 在 HTML 中,将输入类型更改为
number
。 - 在 JavaScript 中,将数字强制转换为浮点数。
- 在 HTML 中,将输入类型更改为
-
如何添加内存功能?
- 在 JavaScript 中,创建一个变量来存储先前计算的结果。
- 添加一个按钮来访问此变量。
-
如何处理错误输入?
- 在 JavaScript 中,添加一个函数来验证输入的有效性。
- 显示错误消息或禁用错误按钮。
-
如何使用不同的主题?
- 在 CSS 中,创建不同的类来定义不同的颜色和样式。
- 添加一个切换主题的按钮或菜单。
-
如何优化代码?
- 使用事件委派来减少事件监听器。
- 将常量和函数移到外部文件。
结论
使用 HTML、CSS 和 JavaScript 制作一个简单的计算器是一个直观的项目,可以增强您的前端技能。通过遵循本指南中的步骤并使用示例代码,您将能够创建自己的计算器,并在各种应用程序中使用它。随着您的进步,您可以探索更高级的功能,例如内存、小数支持和错误处理,以扩展计算器的功能。