HTML 写一个计算器

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <meta charset=utf-8/>
    <title>Calculator</title>
    <style id="jsbin-css">
        div, span {
            margin: 0;
            padding: 0;
            font-weight: bold;
            font: bold 16px Arial, sans-serif;
            /*禁止选中文本*/
            -moz-user-select: none;
            -webkit-user-select: none;
            -o-user-select: none;
            user-select: none;
        }

        body {
            background: radial-gradient(circle, #fff, #aaa);
            background: -webkit-radial-gradient(circle, #fff, #aaa);
            background: -o-radial-gradient(circle, #fff, #aaa);
            background: -moz-radial-gradient(circle, #fff, #aaa);
            background-size: cover;
        }

        #calculator {
            width: 325px;
            height: auto;
            margin: 100px auto;
            padding: 20px;
            background: linear-gradient(#9dd2ea, #8bceec);
            background: -o-linear-gradient(#9dd2ea, #8bceec);
            background: -webkit-linear-gradient(#9dd2ea, #8bceec);
            background: -moz-linear-gradient(#9dd2ea, #8bceec);
            border-radius: 5px;
            box-shadow: 0 7px 8px #0000ff
        }

        .keys, .head {
            overflow: hidden;
        }

        .keys span, .clear {
            float: left;
            width: 66px;
            height: 40px;
            margin: 0 5px 10px 8px;
            text-align: center;
            line-height: 40px;
            border-radius: 3px;
            background: #eee;
            box-shadow: 0 5px 1px #999;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .keys span:hover {
            background: #87cefa;
            box-shadow: 0 5px 1px #1e90ff;
            color: #fff;
        }

        .keys .sign {
            background: #fffacd;
        }

        .clear {
            float: left;
            background: #ffb6c1;
            box-shadow: 0 5px 1px #ff86c1;
        }

        .clear:hover {
            background: #ff96a1;
            box-shadow: 0 5px 1px #ff4691;
            color: #fff;
        }

        .show {
            width: 213px;
            height: 40px;
            float: right;
            margin: 0 16px 5px 0;
            border-radius: 3px;
            background: #999;
            font-size: 20px;
            line-height: 40px;
            text-align: right;
            padding-right: 10px;
            box-shadow: inset 0 4px 5px #333;
        }
    </style>
</head>
<body>
<div id="calculator">
    <div class="head">
        <span class="clear">c</span>
        <div class="show"></div>
    </div>
    <div class="keys">
        <span>7</span>
        <span>8</span>
        <span>9</span>
        <span class="sign">+</span>
        <span>4</span>
        <span>5</span>
        <span>6</span>
        <span class="sign">-</span>
        <span>1</span>
        <span>2</span>
        <span>3</span>
        <span class="sign">*</span>
        <span>0</span>
        <span>.</span>
        <span>=</span>
        <span class="sign">/</span>
    </div>
</div>
<script>
    window.onload = function () {
        var oShow = getByClass("calculator", "show")[0];
        var aNum = document.getElementById("calculator").getElementsByTagName("span");
        for (var i = 0, iLen = aNum.length; i < iLen; i++) {
            aNum[i].onclick = function () {
                var oShowVal = oShow.innerHTML;
                var oNumVal = this.innerHTML;
                var num1, num2 = null;
                num1 = oShowVal;
                //判断按键
                if (oNumVal == "c") {
                    oShow.innerHTML = "";
                }
                else if (oNumVal == "=") {
                    var oResult = eval(oShowVal);
                    console.log(oResult);
                    oShow.innerHTML = oResult==undefined?'0':oResult;
                }
                else {
                    oShow.innerHTML += oNumVal;
                }
            }
        }
    };
    function getByClass(root, sClass) {
        var obj = document.getElementById(root);
        var arr = [];
        var aItems = obj.getElementsByTagName("*");
        for (var i = 0; i < aItems.length; i++) {
            if (aItems[i].className == sClass) {
                arr.push(aItems[i]);
            }
        }
        return arr;
    }
</script>
</body>
</html>
相关推荐
xiaotao13130 分钟前
什么是 Tailwind CSS
前端·css·css3
xiaotao1317 小时前
03. 原子化 CSS 思想
前端·css·tailwind
爱宇阳8 小时前
Nuxt4 + Tailwind CSS v4 自定义响应式断点完整指南
前端·css·nuxt4
孟祥_成都13 小时前
前端下午茶:这 3 个网页特效建议收藏(送源码)
前端·javascript·css
小璐资源网13 小时前
CSS进阶指南:深入解析选择器优先级与继承机制
前端·css
ZHOUPUYU14 小时前
PHP性能分析与调优:从定位瓶颈到实战优化
开发语言·后端·html·php
weixin_4629019714 小时前
ESP32电压显示
开发语言·javascript·css·python
Dxy123931021615 小时前
HTML常用布局详解:从基础到进阶的网页结构指南
前端·html
Dxy12393102161 天前
CSS常用样式详解:从基础到进阶的全面指南
前端·css
爱敲代码的菜菜1 天前
【测试】自动化测试
css·selenium·测试工具·junit·自动化·xpath