HTML+CSS+JS简易计算器
index.html
<! DOCTYPE html >
< html lang = " en" >
< head>
< meta charset = " UTF-8" >
< meta name = " viewport" content = " width=device-width, initial-scale=1.0" >
< title> 简易计算器</ title>
< link rel = " stylesheet" href = " index.css" >
< script src = " index.js" defer > </ script>
</ head>
< body>
< div class = " toggle" > </ div>
< div class = " calculator" >
< div class = " button" >
< h2 id = " result" > </ h2>
< span id = " clear" > Clear</ span>
< span> /</ span>
< span> *</ span>
< span> 7</ span>
< span> 8</ span>
< span> 9</ span>
< span> -</ span>
< span> 4</ span>
< span> 5</ span>
< span> 6</ span>
< span id = " plus" > +</ span>
< span> 1</ span>
< span> 2</ span>
< span> 3</ span>
< span> 0</ span>
< span> 00</ span>
< span> .</ span>
< span id = " equal" > =</ span>
</ div>
</ div>
</ body>
</ html>
index.css
* {
margin : 0;
padding : 0;
box-sizing : border-box;
font-family : consolas;
}
body {
display : flex;
justify-content : center;
align-items : center;
background-color : #edf1f4;
}
.calculator {
position : relative;
margin-top : 50px ;
width : 340px;
padding : 20px;
border-radius : 20px;
box-shadow : 15px 15px 20px rgba ( 0, 0, 0, 0.1) , -15px -15px 20px #fffb;
}
.calculator .button {
position : relative;
display : grid;
}
.calculator .button #result {
padding : 0 20px;
position : relative;
left : 8px;
grid-column : span 4;
height : 100px;
line-height : 100px;
border-radius : 10px;
text-align : end;
font-size : 2em;
color : rgb ( 11, 155, 107) ;
overflow : hidden;
font-weight : 500;
width : calc ( 100% - 16px) ;
user-select : none;
box-shadow : inset 5px 5px 10px rgba ( 0, 0, 0, 0.1) ,
inset -5px -5px 20px #fff;
}
.calculator .button span {
position : relative;
display : flex;
justify-content : center;
align-items : center;
padding : 10px;
border-radius : 10px;
margin : 10px;
min-width : 40px;
font-size : 1.2em;
border : 2px solid #e2ecf3;
box-shadow : 5px 5px 10px #a7cbe5, -5px -5px 10px #e9ecef;
cursor : pointer;
user-select : none;
}
.calculator .button span:active {
color : #739fea;
box-shadow : inset 5px 5px 10px #a7cbe5, inset -5px -5px 10px #e9ecef;
}
.calculator .button span#clear {
grid-column : span 2;
background-color : #f44336;
border : 2px solid #cfe4f4;
color : #fff;
}
.calculator .button span#plus {
grid-row : span 2;
background-color : #31a935;
border : 2px solid #cfe4f4;
color : #fff;
}
.calculator .button span#equal {
background : #2196f3;
border : 2px solid #cfe4f4;
color : #fff;
}
.calculator .buttons span#clear:active,
.calculator .buttons span#plus:active,
.calculator .buttons span#equal:active {
box-shadow : 5px 5px 10px rgba ( 0, 0, 0, 0.1) ,
-5px -5px 10px #fff,
inset 5px 5px 10px rgba ( 0, 0, 0, 0.1) ;
}
.toggle {
position : fixed;
top : 20px;
right : 20px;
background-color : #4b494c;
width : 40px;
height : 40px;
border-radius : 50%;
cursor : pointer;
border : 2px solid #edf1f4;
box-shadow : 5px 5px 10px rgba ( 0, 0, 0, 0.1) ,
-5px -5px 10px #fff;
}
.dark .toggle {
background : #edf1f4;
border : 2px solid #333;
box-shadow : 5px 5px 10px rgba ( 0, 0, 0, 0.5) ,
-5px -5px 10px rgba ( 255, 255, 255, 0.25) ;
}
.dark
{
background : #282c2f;
}
.dark .calculator
{
background : #33393e;
box-shadow : 15px 15px 20px rgba ( 0, 0, 0, 0.25) ,
-15px -15px 20px rgba ( 255, 255, 255, 0.1) ;
}
.dark .calculator #value
{
color : #eee;
box-shadow : inset 5px 5px 10px rgba ( 0, 0, 0, 0.5) ,
inset -5px -5px 20px rgba ( 255, 255, 255, 0.1) ;
}
.dark .calculator .buttons span
{
color : #eee;
border : 2px solid #333;
box-shadow : 5px 5px 10px rgba ( 0, 0, 0, 0.25) ,
-5px -5px 10px rgba ( 255, 255, 255, 0.1) ;
}
.dark .calculator .buttons span:active
{
box-shadow : inset 5px 5px 10px rgba ( 0, 0, 0, 0.25) ,
inset -5px -5px 10px rgba ( 255, 255, 255, 0.1) ;
}
.dark .calculator .buttons span#clear,
.dark .calculator .buttons span#plus,
.dark .calculator .buttons span#equal
{
border : 2px solid #333; ;
}
.dark .calculator .buttons span#clear:active,
.dark .calculator .buttons span#plus:active,
.dark .calculator .buttons span#equal:active
{
box-shadow : inset 5px 5px 10px rgba ( 0, 0, 0, 0.1) ;
}
idnex.js
const button = document. querySelector ( '.button' ) ;
const btn = button. querySelectorAll ( 'span' ) ;
const result = document. getElementById ( 'result' ) ;
const toggle = document. querySelector ( '.toggle' ) ;
const body = document. querySelector ( 'body' ) ;
for ( let i = 0 ; i < btn. length; i++ ) {
btn[ i] . addEventListener ( "click" , function ( ) {
if ( this . innerHTML == "=" ) {
result. innerHTML = eval ( result. innerHTML) ;
} else {
if ( this . innerHTML == 'Clear' ) {
result. innerHTML = " " ;
} else {
result. innerHTML += this . innerHTML
}
}
} )
}
toggle. onclick = function ( ) {
body. classList. toggle ( 'dark' )
}
运行结果