Create Simple Calculator using Javascript CSS & HTML

As a beginner developer building a Web calculator is a good project. If you have a knowledge on Javascript you can easily create a Calculator with Javascript. In this post we will cover UI interaction and Javascript functionality to handle mathematical operations.

This Example we will cover

  • HTML UI
  • CSS
  • Javascript Math Operations

 

Prerequisites

To create this simple Javascript Calculator yo should know

  • Basic HTML and Javascript
  • A Text Editor (Notepad, Notepad++...)

 

Let's design the Calculator

As a developer to do calculator we should be clear about math operations like, addition, substration, multiplication, division, and how to handle decimalvalues in javascript.

 

Let create 3 folders to separate html,css and javascript files, this way we can manage our files easily.

Let's create a html file under html folder and add basic code like below

    <!doctype html>
<html lang="pt-br">
  <head>
        <title>Simple Calculator Example</title>
      <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fite=no">
        <link rel="stylesheet" href="bootstrap.min.css">
    
    
    </head>
<body>
<div class="container">
        <div class="row">
            <div class="col d-flex justify-content-center">
                <br />

                <div class="calculadora">
                    <input  type="text" class="form-control result" placeholder="0" disabled="disabled" />
                    
                    <div class="row">
                        <button  type="button" class="btn btn-dark btn-lg clear font-weight-light">C</button>
                        <button  type="button" class="btn btn-dark btn-lg font-weight-light">/</button>
                        <button  type="button" class="btn btn-dark btn-lg font-weight-light">x</button>
                    </div>

                    <div class="row">
                        <button  type="button" class="btn btn-dark btn-lg font-weight-light">7</button>
                        <button  type="button" class="btn btn-dark btn-lg font-weight-light">8</button>
                        <button  type="button" class="btn btn-dark btn-lg font-weight-light">9</button>
                        <button  type="button" class="btn btn-dark btn-lg font-weight-light">-</button>
                    </div>
                    
                    <div class="row">
                        <button  type="button" class="btn btn-dark btn-lg font-weight-light">4</button>
                        <button  type="button" class="btn btn-dark btn-lg font-weight-light">5</button>
                        <button  type="button" class="btn btn-dark btn-lg font-weight-light">6</button>
                        <button  type="button" class="btn btn-dark btn-lg font-weight-light">+</button>
                    </div>

                    <div class="row">
                        <button  type="button" class="btn btn-dark btn-lg font-weight-light">1</button>
                        <button  type="button" class="btn btn-dark btn-lg font-weight-light">2</button>
                        <button  type="button" class="btn btn-dark btn-lg font-weight-light">3</button>
                        <button  type="button" class="btn btn-dark btn-lg enter">=</button>
                    </div>

                    <div class="row" style="margin-top: -60px">
                        <button  type="button" class="btn btn-dark zero btn-lg font-weight-light">0</button>
                        <button  type="button" class="btn btn-dark btn-lg font-weight-light">.</button>
                    </div>

                </div>
            </div>
        </div>
    </div>    
</body>
<html>

 

Now the above code will give below output with math symbols and number and one text editor to display result.

Create Calculator using Javascript

 

Add Style to design the Calculator UI

Now create a css file under css folder and add below code

body {
  background-color: #51787A;
}
.calculadora {
    margin-top: 100px;
    border: solid 1px #000;
    padding: 20px;
    background:linear-gradient(#3a1c71, #D76D77);
    border-radius: 1rem;
    box-shadow: 2px 3px 2px #000;
  }

  .btn {
    width: 60px;
    height: 50px;
    margin: 5px;
    box-shadow: 1px 1px 1px #000;
  }

  .clear {
    width: 130px;
  }

  .enter {
    height: 110px;
  }

  .zero {
    width: 130px;
  }

  .result {
    text-align: right;
    font-size: 20px;
    margin-top: 10px;
    margin-bottom: 20px;
    border: solid 1px #000;
    box-shadow: 1px 1px 1px #000;
  }
   

 

Add external css to html file

To add external css files into html page we will use <link/> atrribute. Now lets add these external css files to our html page

Under head tag add below code

<link rel="stylesheet" href="../css/bootstrap.min.css">
        <link rel="stylesheet" href="../css/css.css">

 

Now our UI will be looks like below

Create Calculator in Javascript

 

Add Javascript functionality to work Math operations on Calculator

Now create a javascript file inside js folder and add below code

function calcular (type,value) {
    const resul = document.getElementById('result');
    if ( type === 'equation') {
        if (value === 'c') {
            
            resul.value = '';    
        }
    if (value === '+' || value === '-' || value === '*' || value === '/' || value === '.') {
        resul.value += value;
    }                    
    if (value === '=') {
        const value_campo = resul.value;
        const calc = eval(value_campo);
        document.getElementById('result').value = calc;
    }
        } else if (type === 'value' ) {
            resul.value += value;
        }
}

 

This function takes two parameters type and value.

type: will check the type of math operator. Based on this operator we will add our math logic like addition, subtraction...

value: this is the value which number we click on the calculator ui

 

Add this external Javascript file to html

To add external Javascript files to html page we will use script tag and set the js file path to src attribute

<script type="text/javascript" src="../js/operations.js"></script>

 

Add this javascript function to respected buttons.

We will update each button with add this javascript function under button onclick event

onclick="calcular('value', 1)"

 

After adding the onlick event of the button all button codes will be like below

<div class="calculadora">
                    <input id="result" type="text" class="form-control result" placeholder="0" disabled="disabled" />
                    
                    <div class="row">
                        <button onclick="calcular('equation', 'c');" type="button" class="btn btn-dark btn-lg clear font-weight-light">C</button>
                        <button onclick="calcular('equation', '/');" type="button" class="btn btn-dark btn-lg font-weight-light">/</button>
                        <button onclick="calcular('equation', '*');" type="button" class="btn btn-dark btn-lg font-weight-light">x</button>
                    </div>

                    <div class="row">
                        <button onclick="calcular('value', 7)" type="button" class="btn btn-dark btn-lg font-weight-light">7</button>
                        <button onclick="calcular('value', 8)" type="button" class="btn btn-dark btn-lg font-weight-light">8</button>
                        <button onclick="calcular('value', 9)" type="button" class="btn btn-dark btn-lg font-weight-light">9</button>
                        <button onclick="calcular('equation', '-')" type="button" class="btn btn-dark btn-lg font-weight-light">-</button>
                    </div>
                    
                    <div class="row">
                        <button onclick="calcular('value', 4)" type="button" class="btn btn-dark btn-lg font-weight-light">4</button>
                        <button onclick="calcular('value', 5)" type="button" class="btn btn-dark btn-lg font-weight-light">5</button>
                        <button onclick="calcular('value', 6)" type="button" class="btn btn-dark btn-lg font-weight-light">6</button>
                        <button onclick="calcular('equation', '+')" type="button" class="btn btn-dark btn-lg font-weight-light">+</button>
                    </div>

                    <div class="row">
                        <button onclick="calcular('value', 1)" type="button" class="btn btn-dark btn-lg font-weight-light">1</button>
                        <button onclick="calcular('value', 2)" type="button" class="btn btn-dark btn-lg font-weight-light">2</button>
                        <button onclick="calcular('value', 3)" type="button" class="btn btn-dark btn-lg font-weight-light">3</button>
                        <button onclick="calcular('equation', '=')" type="button" class="btn btn-dark btn-lg enter">=</button>
                    </div>

                    <div class="row" style="margin-top: -60px">
                        <button onclick="calcular('value', 0)" type="button" class="btn btn-dark zero btn-lg font-weight-light">0</button>
                        <button onclick="calcular('equation', '.')" type="button" class="btn btn-dark btn-lg font-weight-light">.</button>
                    </div>

                </div>

 

Now lets open the html file on your browser and you can do math operations with your own calculator which is created with Javascript.

 

Complete HTML file will look like below


    <!doctype html>
<html lang="pt-br">
  <head>
        <title>Simple Calculator Example</title>
      <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fite=no">
        <link rel="stylesheet" href="../css/bootstrap.min.css">
        <link rel="stylesheet" href="../css/css.css">
        
    
</head>
<body>
<div class="container">
        <div class="row">
            <div class="col d-flex justify-content-center">
                <br />

                <div class="calculadora">
                    <input id="result" type="text" class="form-control result" placeholder="0" disabled="disabled" />
                    
                    <div class="row">
                        <button onclick="calcular('equation', 'c');" type="button" class="btn btn-dark btn-lg clear font-weight-light">C</button>
                        <button onclick="calcular('equation', '/');" type="button" class="btn btn-dark btn-lg font-weight-light">/</button>
                        <button onclick="calcular('equation', '*');" type="button" class="btn btn-dark btn-lg font-weight-light">x</button>
                    </div>

                    <div class="row">
                        <button onclick="calcular('value', 7)" type="button" class="btn btn-dark btn-lg font-weight-light">7</button>
                        <button onclick="calcular('value', 8)" type="button" class="btn btn-dark btn-lg font-weight-light">8</button>
                        <button onclick="calcular('value', 9)" type="button" class="btn btn-dark btn-lg font-weight-light">9</button>
                        <button onclick="calcular('equation', '-')" type="button" class="btn btn-dark btn-lg font-weight-light">-</button>
                    </div>
                    
                    <div class="row">
                        <button onclick="calcular('value', 4)" type="button" class="btn btn-dark btn-lg font-weight-light">4</button>
                        <button onclick="calcular('value', 5)" type="button" class="btn btn-dark btn-lg font-weight-light">5</button>
                        <button onclick="calcular('value', 6)" type="button" class="btn btn-dark btn-lg font-weight-light">6</button>
                        <button onclick="calcular('equation', '+')" type="button" class="btn btn-dark btn-lg font-weight-light">+</button>
                    </div>

                    <div class="row">
                        <button onclick="calcular('value', 1)" type="button" class="btn btn-dark btn-lg font-weight-light">1</button>
                        <button onclick="calcular('value', 2)" type="button" class="btn btn-dark btn-lg font-weight-light">2</button>
                        <button onclick="calcular('value', 3)" type="button" class="btn btn-dark btn-lg font-weight-light">3</button>
                        <button onclick="calcular('equation', '=')" type="button" class="btn btn-dark btn-lg enter">=</button>
                    </div>

                    <div class="row" style="margin-top: -60px">
                        <button onclick="calcular('value', 0)" type="button" class="btn btn-dark zero btn-lg font-weight-light">0</button>
                        <button onclick="calcular('equation', '.')" type="button" class="btn btn-dark btn-lg font-weight-light">.</button>
                    </div>

                </div>
            </div>
        </div>
    </div>    
</body>
<script type="text/javascript" src="../js/operations.js"></script>


</html>

 

 

 



Subscribe For Daily Updates