html计算器

以下是一个更复杂的计算器的HTML代码示例:

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <title>计算器</title>
    <style>
        .container {
            width: 300px;
            margin: 0 auto;
            padding: 20px;
            border: 1px solid #ccc;
            border-radius: 5px;
        }
        .display {
            width: 100%;
            height: 60px;
            margin-bottom: 10px;
            padding: 10px;
            font-size: 30px;
            text-align: right;
            background-color: #f1f1f1;
            border: none;
            border-radius: 5px;
        }
        .buttons {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            grid-gap: 10px;
        }
        .button {
            width: 70px;
            height: 50px;
            background-color: #eee;
            border-radius: 5px;
            font-size: 20px;
            text-align: center;
            line-height: 50px;
            cursor: pointer;
        }
        .button:hover {
            background-color: #ddd;
        }
        .button.clear {
            grid-column: span 2;
        }
        .button.equals {
            background-color: #f39c12;
            color: #fff;
        }
    </style>
</head>
<body>
    <div class="container">
        <input type="text" id="display" class="display" readonly>
        <div class="buttons">
            <div class="button clear" onclick="clearDisplay()">C</div>
            <div class="button" onclick="appendValue('7')">7</div>
            <div class="button" onclick="appendValue('8')">8</div>
            <div class="button" onclick="appendValue('9')">9</div>
            <div class="button" onclick="appendValue('4')">4</div>
            <div class="button" onclick="appendValue('5')">5</div>
            <div class="button" onclick="appendValue('6')">6</div>
            <div class="button" onclick="appendValue('1')">1</div>
            <div class="button" onclick="appendValue('2')">2</div>
            <div class="button" onclick="appendValue('3')">3</div>
            <div class="button" onclick="appendValue('0')">0</div>
            <div class="button" onclick="appendValue('.')">.</div>
            <div class="button" onclick="appendValue('+')">+</div>
            <div class="button" onclick="appendValue('-')">-</div>
            <div class="button" onclick="appendValue('*')">*</div>
            <div class="button" onclick="appendValue('/')">/</div>
            <div class="button" onclick="calculate()">=</div>
        </div>
    </div>

    <script>
        function appendValue(value) {
            var display = document.getElementById('display');
            var lastChar = display.value.slice(-1);
            if (lastChar === '.' && value === '.') {
                return;
            }
            display.value += value;
        }

        function calculate() {
            var display = document.getElementById('display');
            var expression = display.value;
            if (expression) {
                try {
                    var result = eval(expression);
                    display.value = result;
                } catch (error) {
                    display.value = '错误';
                }
            }
        }

        function clearDisplay() {
            document.getElementById('display').value = '';
        }
    </script>
</body>
</html>
相关推荐
源猿人2 小时前
企业级文件浏览系统的Vue实现:架构设计与最佳实践
前端·javascript·数据可视化
RoyLin2 小时前
TypeScript设计模式:迭代器模式
javascript·后端·node.js
小桥风满袖4 小时前
极简三分钟ES6 - ES9中for await of
前端·javascript
编程贝多芬4 小时前
Promise 的场景和最佳实践
前端·javascript
Asort4 小时前
JavaScript 从零开始(四):基础语法详解——从变量声明到数据类型的完全指南
前端·javascript
木木jio4 小时前
前端大文件分片上传 —— 基于 React 的工程化实现
前端·javascript
Lotzinfly4 小时前
12个TypeScript奇淫技巧你需要掌握😏😏😏
前端·javascript·面试
一个大苹果4 小时前
setTimeout延迟超过2^31立即执行?揭秘JavaScript定时器的隐藏边界
javascript
普郎特5 小时前
"不再迷惑!用'血缘关系'彻底搞懂JavaScript原型链机制"
前端·javascript
一枚前端小能手5 小时前
「周更第3期」实用JS库推荐:Lodash
前端·javascript