002HTML/CSS/JS 简单计算器

145 阅读1分钟

今日练习:使用html+css+js制作一个简单的计算器

image.png

html:

    <div class="container">
        <div class="output" id="output">0</div>
        <div class="calculator_keys">
            <button class="button" onclick="appendToOutput('+')">+</button>
            <button class="button" onclick="appendToOutput('-')">-</button>
            <button class="button" onclick="appendToOutput('*')">&times;</button>
            <button class="button" onclick="appendToOutput('÷')">÷</button>
            <button class="button" onclick="appendToOutput('7')">7</button>
            <button class="button" onclick="appendToOutput('8')">8</button>
            <button class="button" onclick="appendToOutput('9')">9</button>
            <button class="button" onclick="appendToOutput('4')">4</button>
            <button class="button" onclick="appendToOutput('5')">5</button>
            <button class="button" onclick="appendToOutput('6')">6</button>
            <button class="button" onclick="appendToOutput('1')">1</button>
            <button class="button" onclick="appendToOutput('2')">2</button>
            <button class="button" onclick="appendToOutput('3')">3</button>
            <button class="button equal-btn equals" onclick="calculate()">=</button>
            <button class="button" onclick="appendToOutput('0')">0</button>
            <button class="button" onclick="appendToOutput('.')">.</button>
            <button class="button" onclick="clearOutput()" id="clear">C</button>
        </div>
    </div>

css:

        html {
            box-sizing: border-box;
        }

        *,
        *::before,
        *::after {
            box-sizing: inherit;
        }

        body {
            margin: 0;
        }

        embed,
        iframe,
        img,
        object,
        video {
            max-width: 100%;
        }

        h1,
        h2,
        h3,
        h4,
        h5,
        h6,
        ul,
        ol,
        li,
        p,
        pre,
        blockquote,
        figure,
        hr {
            margin: 0;
            padding-right: 0;
            padding-left: 0;
        }

        a {
            text-decoration: none;
        }

        a:focus {
            outline: none;
        }

        h1,
        h2,
        h3,
        h4,
        h5,
        h6 {
            display: block;
        }

        ol,
        ul {
            list-style: none;
        }

        input,
        textarea,
        button {
            border: 0;
            border-radius: 0;
            background-color: transparent;
            font-size: inherit;
            font-family: inherit;
            font-weight: inherit;
            outline: none;
            appearance: none;
            text-align: left;
        }

        input:hover,
        input:active,
        input:focus,
        textarea:hover,
        textarea:active,
        textarea:focus,
        button:hover,
        button:active,
        button:focus {
            outline: none;
        }

        :root {
            font-family: Helvetica, Arial, sans-serif;
        }

        body {
            background-image: linear-gradient(236deg, #74ebd5, #acb6e5);
            font-family: Arial, Helvetica, sans-serif;
            height: 100vh;
        }

        .container {
            margin: auto;
            margin-top: 100px;
            /* padding: 10px; */
            max-width: 20em;
            margin-left: auto;
            margin-right: auto;
            border-radius: 12px;
            box-shadow: 0 0 40px 0px rgba(0, 0, 0, 0.15);
            overflow: hidden;

        }

        .output {
            font-size: 2em;
            text-align: right;
            background-color: #222222;
            color: #fff;
            font-size: 1.714285714em;
            padding: 0.5em 0.75em;
        }

        .calculator_keys {
            background-color: #999;
            display: grid;
            grid-gap: 1px;
            grid-template-columns: repeat(4, 1fr);
        }

        .calculator_keys>* {
            background-color: #fff;
            padding: 0.5em 1.25em;
            position: relative;
            text-align: center;
        }

        .calculator__keys>*:active::before {
            background-color: rgba(0, 0, 0, 0.2);
            bottom: 0;
            box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.5) inset;
            content: "";
            left: 0;
            opacity: 0.3;
            position: absolute;
            right: 0;
            top: 0;
            z-index: 1;
        }

        .button {
            background-color: #eee;
        }
        .equal-btn {
            background-image: linear-gradient(to bottom, #fe886a, #ff7033);
            grid-column: -2;
            grid-row: 2 / span 5;
        }
        #clear{
            background-color: #31c27c;
        }

js:

        const output = document.querySelector('.output');

        function appendToOutput(value){
            if(output.innerHTML==='0'){
                output.innerHTML=value;
            }else{
                output.innerHTML += value;
            }
        }
        function clearOutput(){
            output.innerHTML= '0';
        }
        function calculate(){
            output.innerHTML = eval(output.innerHTML);
        }

仙路崎岖,磨难并不可怕,坚持终成正果!