Do you want to create a simple calculator in HTML? well, this free code snippet helps you to create a calculator in HTML, CSS, and JavaScript. It comes with a stylish interface to perform calculations on numbers.
Create HTML code for Calculator
1. In the first step, create the HTML code for the calculator as follows:
<div class="container calculator">
<div class="screen-item screen"> <span>screen</span></div>
<dl class="touche__box">
<dt class="clear-item"> <span>clear</span></dt>
<dt class="touche__box-item"> <span class="soustraction">_</span></dt>
<dt class="touche__box-item"><span class="sign">+</span></dt>
<dt class="touche__box-item clearme"> <span>7</span></dt>
<dt class="touche__box-item"> <span>8</span></dt>
<dt class="touche__box-item"> <span>9</span></dt>
<dt class="touche__box-item"><span class="sign">/</span></dt>
<dt class="touche__box-item"> <span>4</span></dt>
<dt class="touche__box-item"> <span>5</span></dt>
<dt class="touche__box-item"> <span>6</span></dt>
<dt class="touche__box-item"><span class="sign">x</span></dt>
<dt class="touche__box-item"> <span>1</span></dt>
<dt class="touche__box-item"> <span>2</span></dt>
<dt class="touche__box-item"> <span>3</span></dt>
<dt class="equal-item"><span class="sign-equal">=</span></dt>
<dt class="touche__box-item zero-item"> <span>0</span></dt>
<dt class="touche__box-item un-item"><span class="sign">.</span></dt>
</dl>
</div>
2. After that, create the CSS styles for the calculator. You can add your own CSS properties to customize the calculator interface.
.calculator {
width: 408px;
height: 837px;
margin: 10px auto;
position: relative;
color: #fff;
font-size: 3em;
}
.screen-item {
position: absolute;
width: 352px;
height: 90px;
line-height: 90px;
background: #ff7f24;
border: 1px solid #fff;
top: 0px;
left: 28px;
text-align: right;
}
.screen-item span {
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
}
.screen-item .error {
color: #f00;
border: 1px solid;
/* padding: 10px 60px; */
border-radius: 5px;
display: block;
width: 73%;
font-size: 1em;
text-align: center;
font-weight: bold;
background: #fff;
font-size: 0.8em;
padding: 20px 11px;
line-height: 1.2;
}
.touche__box {
position: relative;
top: 91px;
left: 27px;
}
.touche__box span {
width: 100%;
height: 100%;
display: block;
text-indent: 29px;
line-height: 2.1;
}
.touche__box span.soustraction {
line-height: 1.5;
}
.touche__box .touche__box-item {
width: 85px;
height: 96px;
background-color: #ffd6d6;
font-weight: bold;
color: #ff7f24;
float: left;
position: relative;
margin: 2px;
}
.touche__box .clear-item {
width: 173px;
height: 95px;
background: #53e4ed;
border: 1px solid #fff;
float: left;
position: relative;
margin: 2px;
}
.touche__box .clear-item span {
text-indent: 35px;
line-height: 1.99;
}
.touche__box .zero-item {
width: 174px;
height: 96px;
}
.touche__box .zero-item span {
text-indent: 79px;
}
.touche__box .zero-item,
.touche__box .un-item {
position: relative;
margin-top: -97px;
}
.touche__box .equal-item {
width: 85px;
height: 96px;
background-color: #ea2131;
float: left;
position: relative;
margin: 2px;
height: 194px;
}
.touche__box .equal-item span {
line-height: 4;
}
.touche__box .clearme {
clear: both;
}
3. At last, add the following JavaScript calculator program between <script> and </script> tag before closing the body tag.
//Generate by BABEL -:)
//Distributed by CodeHim (www.codehim.com)
'use strict';
//DESIGN
//loading page:
//en meme temps
//page blanche vers page noir
//iphone cocke noir vers iphone cocke blanche
//https://tympanus.net/codrops/2016/10/12/animated-decorative-lines/
(function () {
var arrSign = ['-', '+', '/', '*', 'x'],
arr = [],
result = 0,
printCalcul = '',
arrSort = void 0,
strSign = void 0,
error = void 0,
screen = document.querySelector('.screen span'),
ele = document.querySelectorAll('.touche__box-item > span'),
equal = document.querySelector('.sign-equal'),
clear = document.querySelector('.clear-item span');
//operation
for (var i = 0; i < ele.length; i++) {
ele[i].addEventListener('click', function (e) {
var cible = e.target.innerHTML === '_' ? cible = '-' : e.target.innerHTML;
//on memorise dans le tableau
arr.push(cible);
//printCalcul display the screen
printCalcul += cible;
screen.innerHTML = printCalcul;
e.preventDefault();
});
}
clear.addEventListener('click', function (e) {
screen.innerHTML = 'screen';
arr.splice(0, arr.length);
printCalcul = '';
screen.classList.remove('error');
e.preventDefault();
});
error = function error(strSignMessage) {
screen.innerHTML = 'err with sign ' + strSignMessage;
screen.classList.add('error');
};
equal.addEventListener('click', function (e) {
result = 0;
strSign = arr.join('');
//return an array with the number together
arrSort = strSign.match(/(\d+)|\D/g); //[ '4', '-', '94', '-', '8' ]
for (var _i = 0, l = arrSort.length; _i < l; _i++) {
var current = arrSort[_i],
prev = arrSort[_i - 1],
next = arrSort[_i + 1];
prev = prev !== undefined && arrSign.indexOf(prev) === -1 ? parseInt(prev, 10) : '';
next = next !== undefined && arrSign.indexOf(next) === -1 ? parseInt(next, 10) : '';
//debugger
//
// if value current it's a sign: +-/*x
if (arrSign.indexOf(current) >= 0) {
if (current === '+') {
if (_i === 1) {
//if is the first sign +-/* we're count the prev and next element
result = prev + next;
//console.log(result + ' : ' + i + ' : ' + arrSort[i] + ' : ' + arrSort[j] );
} else if (_i > 1) {
result += next;
//console.log(result + ' : ' + i + ' : ' + arrSort[i+1]);
} else if (_i === 0) {
error('+');
break;
}
}
if (current === '-') {
if (_i === 1) {
//first sign +-/*
result = prev - next;
//console.log(result + ' - ' + ' : ' + i + ' : ' + arrSort[i] + ' : ' + arrSort[j] );
} else if (_i > 1) {
result -= next;
//console.log(result + ' - ' +' : ' + i + ' : ' + arrSort[i+1]);
} else if (_i === 0) {
error('-');
break;
}
}
if (current === 'x') {
if (_i === 1) {
//first sign +-/*
result += prev * next;
} else if (_i > 1) {
result *= next;
//console.log(result + ' * ' +' : ' + i + ' : ' + arrSort[i+1]);
} else if (_i === 0) {
error('*');
break;
}
}
if (current === '/') {
if (_i === 1) {
//first sign +-/*
result += prev / next;
} else if (_i > 1) {
result /= next;
} else if (_i === 0) {
error('/');
break;
}
}
}
}
if (!screen.classList.contains('error')) {
screen.innerHTML = result;
}
e.preventDefault();
}); //end click equal
})(); //END
That’s all! I hope you have successfully integrated this simple calculator in your HTML projects. If you have any questions or suggestions, let me know by comment below.
Similar Code Snippets:

I code and create web elements for amazing people around the world. I like work with new people. New people new Experiences.
I truly enjoy what I’m doing, which makes me more passionate about web development and coding. I am always ready to do challenging tasks whether it is about creating a custom CMS from scratch or customizing an existing system.





