
創(chuàng)建計(jì)算器 Web 應(yīng)用程序是學(xué)習(xí) HTML、CSS 和 JavaScript 的絕佳項(xiàng)目。盡管計(jì)算器很常見或相當(dāng)普通,但從頭開始構(gòu)建計(jì)算器可以幫助初學(xué)者理解 Web 開發(fā)的基本概念,例如使用 HTML 構(gòu)建內(nèi)容、使用 CSS 設(shè)置元素樣式以及使用 JavaScript 添加交互功能。
在本概述中,我們將逐步介紹創(chuàng)建功能齊全的計(jì)算器所需的代碼的每個(gè)部分。本指南不僅提供代碼,還將詳細(xì)解釋每一行,確保您了解所有內(nèi)容如何組合在一起。到本項(xiàng)目結(jié)束時(shí),您將擁有一個(gè)流暢的交互式計(jì)算器,您可以對(duì)其進(jìn)行個(gè)性化設(shè)置,甚至可以使用更高級(jí)的功能進(jìn)行擴(kuò)展。
計(jì)算器的功能
該計(jì)算器包括基本功能:
顯示當(dāng)前輸入和結(jié)果的顯示區(qū)域。
數(shù)字按鈕 (0–9) 和一個(gè)附加的“00”按鈕。
算術(shù)運(yùn)算按鈕:加法( )、減法(-)、乘法(*)、除法(/)。
特殊按鈕:
通過這個(gè)項(xiàng)目,您將學(xué)習(xí)如何:
第 1 步:HTML 結(jié)構(gòu) - 構(gòu)建計(jì)算器的布局
HTML 代碼為我們的計(jì)算器提供了基礎(chǔ)結(jié)構(gòu)。在這一部分中,我們定義了構(gòu)成計(jì)算器的元素,例如按鈕和顯示區(qū)域,您可以使用您選擇的任何編輯器來實(shí)現(xiàn)此效果,我個(gè)人更喜歡 Visual studio 代碼。以下是計(jì)算器的完整 HTML 代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Calculator</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div>
<p>Explanation</p>
<p>Document Type and Language Declaration:<br>
</p>
<pre class="brush:php;toolbar:false"><!DOCTYPE html>
告訴瀏覽器這是一個(gè) HTML5 文檔。
<html lang="en">
開始 HTML 文檔并指定英語作為語言。這有助于搜索引擎和屏幕閱讀器理解文檔的語言。
頭部:
<head>
包含對(duì)文檔很重要但用戶不可見的元數(shù)據(jù)和鏈接。
<meta charset="UTF-8">
設(shè)置字符編碼,確保與大多數(shù)語言兼容。
<meta name="viewport" content="width=device-width, initial-scale=1.0">
通過調(diào)整頁面布局以適應(yīng)不同的設(shè)備,使頁面具有響應(yīng)能力。
<title>Calculator</title>
設(shè)置瀏覽器選項(xiàng)卡上顯示的標(biāo)題。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Calculator</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div>
<p>Explanation</p>
<p>Document Type and Language Declaration:<br>
</p>
<pre class="brush:php;toolbar:false"><!DOCTYPE html>
指向定義樣式的 CSS 文件的鏈接。
計(jì)算器布局:
<html lang="en">
指向處理計(jì)算器功能的 JavaScript 文件的鏈接。
第 2 步:CSS 樣式 - 設(shè)計(jì)計(jì)算器界面
現(xiàn)在我們有了結(jié)構(gòu),讓我們開始設(shè)計(jì)樣式。此 CSS 代碼將使計(jì)算器看起來更現(xiàn)代,添加顏色、圓形按鈕、陰影和響應(yīng)式布局調(diào)整。
<head>
說明
基本重置和字體:
<meta charset="UTF-8">
刪除默認(rèn)的填充和邊距,將 box-sizing 設(shè)置為 border-box 以保持大小一致,并應(yīng)用現(xiàn)代字體。
身體造型:
body:使用 Flexbox 將計(jì)算器容器置于屏幕中央并應(yīng)用漸變背景。
計(jì)算器容器:
.calculator:添加內(nèi)邊距、圓角和陰影,打造整潔的卡片式外觀。
顯示輸入:
輸入:這種樣式為顯示區(qū)域提供了大字體和右對(duì)齊,類似于真正的計(jì)算器顯示。
按鈕樣式:
.計(jì)算器按鈕:設(shè)置帶有陰影效果、白色文本顏色和對(duì)齊間距的圓形按鈕。
.actionbtn、.clearbtn 和 .enter:特定按鈕的樣式,使它們脫穎而出(例如,綠色表示運(yùn)算符,紅色表示清除,橙色表示等于)。
第 3 步:這是所有 JavaScript 邏輯發(fā)生的地方 - 使計(jì)算器發(fā)揮作用
結(jié)構(gòu)和風(fēng)格都已完成,讓我們使用 JavaScript 添加功能。該腳本允許我們處理按鈕的點(diǎn)擊、執(zhí)行算術(shù)并顯示結(jié)果。
<meta name="viewport" content="width=device-width, initial-scale=1.0">
說明
頁面加載事件監(jiān)聽器:
<title>Calculator</title>
確保腳本在加載所有 HTML 內(nèi)容后運(yùn)行。
輸入和按鈕變量:
<link rel="stylesheet" href="style.css">
選擇顯示區(qū)域。
<div>
<p>Wraps the entire calculator interface. We’ll apply styles to this container to make it look like a calculator.<br>
</p>
<pre class="brush:php;toolbar:false"><input type="text" placeholder="0">
<p>This is the display area of the calculator, where we show the current number or result. It is disabled, so users can’t type directly.</p>
<p>Buttons:<br>
</p>
<pre class="brush:php;toolbar:false"><button>
<p>Clears the calculator display and resets the current calculation.<br>
</p>
<pre class="brush:php;toolbar:false"><button>
<p>Deletes the last entered character.<br>
</p>
<pre class="brush:php;toolbar:false"><button>
<p>Toggles between positive and negative values.<br>
</p>
<pre class="brush:php;toolbar:false"><button>
<p>The division operator.</p>
<p>Remaining button elements represent numbers (0–9), operators (+, -, *, /), and a decimal point (.). The = button (class="enter") is used to evaluate the expression.</p>
<p>JavaScript File:<br>
</p>
<pre class="brush:php;toolbar:false"><script src="script.js"></script>
將所有按鈕收集在一個(gè)數(shù)組中以便于操作。
按鈕點(diǎn)擊事件:
*{
padding: 0;
margin: 0;
box-sizing: border-box;
font-family: 'poppins', sans-serif;
}
body{
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background: linear-gradient(45deg, #0a0a0a, #3a4452);
}
.calculator{
border: 1px solid #a2a2a2;
padding: 20px;
border-radius: 20px;
background: transparent;
box-shadow: 0px 3px 15px rgba(113, 115, 119, 0.5);
}
input{
width: 272px;
min-height: 100px;
border: none;
padding: 5px;
margin: 10px;
background: transparent;
font-size: 40px;
text-align: right;
cursor: text;
outline: none;
color: #fff;
}
input::placeholder{
color: #fff;
}
.calculator button{
width: 50px;
height: 50px;
margin: 10px;
border-radius: 50%;
border: none;
box-shadow: -5px 3px 10px rgba(9, 9, 9, 0.5);
background: transparent;
color: #fff;
cursor: pointer;
outline: none;
}
.calculator .actionbtn{
color: #1afe17;
}
.calculator .clearbtn{
background: #f31d1f;
}
.calculator .enter{
background: #f5881a;
}
為每個(gè)按鈕添加點(diǎn)擊事件。根據(jù)按鈕的不同,執(zhí)行不同的操作:
顯示字體大小調(diào)整:當(dāng)輸入長(zhǎng)度超過 10 個(gè)字符時(shí)縮小字體大小。
等號(hào) (=):使用 eval() 計(jì)算表達(dá)式并顯示結(jié)果。如果出現(xiàn)錯(cuò)誤(例如無效語法),則會(huì)顯示“錯(cuò)誤”。
清除 (AC):重置字符串并清除顯示。
刪除 (DEL):從字符串中刪除最后一個(gè)字符并更新顯示。
數(shù)字和運(yùn)算符按鈕:將按鈕的值添加到字符串并更新顯示。
切換符號(hào) ( /-):
* { padding: 0; margin: 0; box-sizing: border-box; font-family: 'Poppins', sans-serif; }
將當(dāng)前數(shù)字乘以 -1 以在正值和負(fù)值之間切換。
最后,使用 HTML、CSS 和 JavaScript 構(gòu)建一個(gè)簡(jiǎn)單但功能強(qiáng)大的計(jì)算器 Web 應(yīng)用程序?qū)τ诔鯇W(xué)者和經(jīng)驗(yàn)豐富的開發(fā)人員來說都是一個(gè)很棒的項(xiàng)目。通過仔細(xì)結(jié)合 HTML 提供的結(jié)構(gòu)基礎(chǔ)、CSS 賦予的風(fēng)格元素以及 JavaScript 提供的交互功能,我們可以創(chuàng)建一個(gè)直觀的工具,它不僅能滿足其主要目的,還能演示核心 Web 開發(fā)概念。
此外,該項(xiàng)目為進(jìn)一步探索和增強(qiáng)開辟了廣泛的可能性。這里吸取的經(jīng)驗(yàn)教訓(xùn)為更復(fù)雜的項(xiàng)目提供了全面的基礎(chǔ)。 Web 開發(fā)是一個(gè)持續(xù)的學(xué)習(xí)過程,該項(xiàng)目展示了每一行代碼如何為功能性、引人入勝的體驗(yàn)做出貢獻(xiàn)。
隨著您不斷提高自己的技能,請(qǐng)考慮如何使這個(gè)計(jì)算器更加用戶友好和強(qiáng)大。嘗試不同的布局,嘗試實(shí)現(xiàn)額外的數(shù)學(xué)函數(shù)。您所做的每一次更改都會(huì)加深您對(duì)編碼原則的理解并增強(qiáng)您的開發(fā)資源。
編碼快樂!
以上是構(gòu)建一個(gè)簡(jiǎn)單的基于 Web 的計(jì)算器:使用 Html CSS 和 JavaScript 分步 Guild的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!