Программный код калькулятора html

Create a simple calculator using HTML, CSS and Javascript

In this tutorial we will create a fully working calculator using only HTML, CSS and vanilla Javascript. You’ll learn about event handling, and DOM manipulations throughout the project. In my opinion this is a really good beginner project for those who want to become web developers.

Video Tutorial

If you would watch a detailed step-by-step video instead you can check out the video I made covering this project on my Youtube Channel:

HTML

The html will be pretty simple for this project. We’ll start out with a standard HTML5 boilerplate. At the bottom of our body I included the index.js script that we will create later. This needs to be at the bottom, because this way, when our javascript runs, the html elements required for the calculator will be in the DOM.
In the body we have a section and inside that a div with a container class. We will use these wrappers to position our calculator on the page. Inside our container we have an empty div with the id of display , and this will be the display of our calculator. It is empty, because we will modify its content from Javascript. Then we have a div with the class of buttons which will represent the keypad of the calculator.

   class="container">  id="display">
class="buttons"> src="index.js">

The buttons container will hold all of the buttons. Each button will be a div with a class of button . This will make the styling easy, and also will help us to gather the user input. Here we have a div for every button that we want on our keypad. You can notice that we have a weird looking label between the buttons: ← . This is a HTML entity and it renders a back arrow (←), and we’ll use this as a backspace. Also please not that for the equal sign button we have a separate id equal . We will use this Id to distinguish this special button, and evaluate the expression provided to the calculator.

  class="buttons">  class="button">C  class="button">/  class="button">*  class="button">   class="button">7  class="button">8  class="button">9  class="button">-  class="button">4  class="button">5  class="button">6  class="button">+  class="button">1  class="button">2  class="button">3  class="button">.  class="button">(  class="button">0  class="button">)  id="equal" class="button">=  

And this is all of the HTML markup that we need for this project, let’s jump into CSS. Don’t forget to link the CSS styleshead in the head of the HTML file:

 rel="stylesheet" href="style.css"> 

CSS

Let’s create a style.css file.
We set a width for the container and center it using margin (also give it a decent top margin of 10vh), and apply a little box shadow.

.container  max-width: 400px; margin: 10vh auto 0 auto; box-shadow: 0px 0px 43px 17px rgba(153,153,153,1); > 

For the display we set a fixed height, and to center the text vertically we need to set the line-height to the exact same amount. The text should be right align, because this is how most calculator displays work. Also set the font-size and give a decent amount paddings.

#display  text-align: right; height: 70px; line-height: 70px; padding: 16px 8px; font-size: 25px; > 

To position the buttons we use CSS grid. By setting 4 x 1fr in- grid-template-coloumns we’ll have 4 equally sized buttons in each row. We only set bottom and left borders, so we won’t get double borders. We’ll set the other two sides in the next CSS rule.

.buttons  display: grid; border-bottom: 1px solid #999; border-left: 1px solid#999; grid-template-columns: 1fr 1fr 1fr 1fr; > 
.buttons > div  border-top: 1px solid #999; border-right: 1px solid#999; > 

For the button we’ll set borders, font-size and 100px of line height to center it vertically, and set text-align: center to center the button labels horizontally. To have a better user experience set cursor to pointer, so the user will know that this is a clickable element.

.button  border: 0.5px solid #999; line-height: 100px; text-align: center; font-size: 25px; cursor: pointer; > 

We want the equal button to stand out so, we’ll set a blue background color and white text to it. Also to have a nice hover effect we’ll set a darker background color and white text color on hover. To make the transition smoot set: transition: 0.5s ease-in-out; .

#equal  background-color: rgb(85, 85, 255); color: white; > .button:hover  background-color: #323330; color: white; transition: 0.5s ease-in-out; > 

Javascript

This will be the heart of our application. Let’s create the index.js file. The first thing we need to do is to save a reference to our display dom element. We can easily do that because it has an id of display .

let display = document.getElementById('display'); 

Next we have to get references for the buttons. We’ll store the button references in an array. To gather the buttons we can select them by document.getElementsByClassName(‘button’) , but this function gives back a NodeCollection instead of an array so we have to convert it to an array using Array.from() .

let buttons = Array.from(document.getElementsByClassName('button')); 

The next and last step we have to make is to add event listener to the buttons and build the functionalities. To add event listeners for the buttons, we’ll map through the buttons array and add a click event listener for each. (An advanced solution would be to only add event listener to the buttons container and use event bubbling but this is a more beginner-friendly solution.) To determine what should we do, we’ll use e.target.innerText , which will simply give back the label of the button that was clicked. In the first case, when the user hits the «C» button we’d like to clear the display. To do that we can access our display reference and set the innerText to an empty string. Don’t forget to add break; at the end, because it is needed to prevent the execution of the code defined in other case blocks. For the equal button we’ll use javascript built in eval function. We need to provide the display’s content to eval and it will evaluate and return the result, so we should set the result of the eval call to the display’s innerText. We need to wrap this into a try catch block to handle errors. Erros can happen when we have syntactically wrong math expressions, for example //(9( , ine these cases we’ll set the display’s innerText to display ‘Error’. ⚠️ You should not use eval in user facing applications, because it can be abused and external code can be run with it. More details If you want to replace eval I suggest using Math.js lib. If the user hits the back arrow we need to remove the last character from the display’s innerText. To do that we’ll use the String.slice() method, but we only want to do that if the display has any value. In the default case, so whenever the user don’t hit these special symbols we just want to append the clicked button’s innerText to the display’s innerText. We can use the += operator to do that.

buttons.map( button =>  button.addEventListener('click', (e) =>  switch(e.target.innerText) case 'C': display.innerText = ''; break; case '=': try display.innerText = eval(display.innerText); > catch  display.innerText = "Error" > break; case '': if (display.innerText) display.innerText = display.innerText.slice(0, -1); > break; default: display.innerText += e.target.innerText; > >); >); 

The whole project is available on GitHub
And that’s it you have a working calculator. Thanks for reading.

Where you can learn more from me?

  • 🍺 Support free education and buy me a beer
  • 💬 Join our community on Discord
  • 📧 Newsletter Subscribe here
  • 🎥 YouTube Javascript Academy
  • 🐦 Twitter: @dev_adamnagy
  • 📷 Instagram @javascriptacademy

Источник

Как создать калькулятор, используя язык HTML

В создании этой статьи участвовала наша опытная команда редакторов и исследователей, которые проверили ее на точность и полноту.

Команда контент-менеджеров wikiHow тщательно следит за работой редакторов, чтобы гарантировать соответствие каждой статьи нашим высоким стандартам качества.

Количество источников, использованных в этой статье: 11. Вы найдете их список внизу страницы.

Количество просмотров этой статьи: 136 290.

Математические вычисления можно выполнить на компьютере с помощью калькулятора, но интереснее создать калькулятор посредством простейшего HTML-кода. Для этого необходимо разобраться в основах HTML, скопировать код в текстовый редактор и сохранить его с расширением HTML. Чтобы воспользоваться калькулятором, нужно открыть HTML-страницу в браузере. Описанные действия позволят не только выполнять вычисления в браузере, но и узнать некоторые основы программирования.

Основы HTML-кода

Изображение с названием Create a Calculator Using HTML Step 1

  • html: этот элемент синтаксиса свидетельствует о языке, на котором написана программа. При написании кода могут использоваться несколько языков программирования, поэтому тег указывает на язык HTML. [1] X Источник информации
  • head: внутри этого тега задаются параметры других данных, то есть указываются так называемые метаданные. Как правило, команда используется для определения параметров стилистических элементов, таких как заголовки, подзаголовки и так далее. Этот тег представляет собой своеобразный зонтик, под которым находится основная часть программы. [2] X Источник информации
  • title: этот тег определяет название страницы, которое отобразится в веб-браузере, когда вы ее откроете.
  • body bgcolor= «#»: этот атрибут задает цвет фона страницы. Число, которое вводится внутри кавычек после символа #, соответствует определенному цвету.
  • text= «»: слово, которое вводится внутри кавычек, определяет цвет текста страницы.
  • form name=»»: этот атрибут определяет имя формы, которая используется для создания структуры на основе того, что Javascript известно значение имени формы. В нашем примере в качестве имени формы будет использовано значение «calculator» (калькулятор), что приведет к созданию специальной структуры страницы. [3] X Источник информации
  • input type=»»: это, пожалуй, основной атрибут, который определяет, каким элементам страницы соответствуют значения, введенные внутри кавычек. Например, такими элементами могут быть тексты, пароли, кнопки (как в нашем случае с калькулятором) и так далее. [4] X Источник информации
  • value=»»: эта команда определяет символы, которые отобразятся на элементах, заданных атрибутом «input type=». В случае калькулятора такими символами являются цифры (1-9) и математические операции (+, -, *, /, =). [5] X Источник информации
  • onClick=»»: этот синтаксис описывает событие, которое должно произойти при нажатии на кнопку. В случае калькулятора нужно сделать так, чтобы символ, отображенный на кнопке, понимался системой в буквальном смысле. Например, если на кнопке отображена цифра 6, в кавычках нужно ввести следующее значение: document.calculator.ans.value+=’6′. [6] X Источник информации
  • br: этот тег инициирует разрыв строки на странице, поэтому все, что расположено после этого тега, будет отображено на следующей строке. [7] X Источник информации
  • /form, /body, and /html: это закрывающие теги, которые завершают процессы, запущенные соответствующими открывающими тегами. [8] X Источник информации

Базовый HTML-код для создания калькулятора

Изображение с названием Create a Calculator Using HTML Step 2

Скопируйте код, приведенный ниже. Чтобы выделить код, переместите курсор в верхний левый угол окна, зажмите левую кнопку мыши и перетащите курсор в правый нижний угол окна; код будет выделен синим цветом. Затем нажмите «Command+C» (в Mac OS) или «Ctrl+C» (в Windows), чтобы скопировать код в буфер обмена.

html> head> title>HTML Calculatortitle> head> body bgcolor= "#000000" text= "gold"> form name="calculator" > input type="button" value="1" onClick="document.calculator.ans.value+='1'"> input type="button" value="2" onClick="document.calculator.ans.value+='2'"> input type="button" value="3" onClick="document.calculator.ans.value+='3'">br> input type="button" value="4" onClick="document.calculator.ans.value+='4'"> input type="button" value="5" onClick="document.calculator.ans.value+='5'"> input type="button" value="6" onClick="document.calculator.ans.value+='6'"> input type="button" value="7" onClick="document.calculator.ans.value+='7'">br> input type="button" value="8" onClick="document.calculator.ans.value+='8'"> input type="button" value="9" onClick="document.calculator.ans.value+='9'"> input type="button" value="-" onClick="document.calculator.ans.value+='-'"> input type="button" value="+" onClick="document.calculator.ans.value+='+'">br> input type="button" value="*" onClick="document.calculator.ans.value+='*'"> input type="button" value="/" onClick="document.calculator.ans.value+='/'"> input type="button" value="0" onClick="document.calculator.ans.value+='0'"> input type="reset" value="Reset"> input type="button" value=" na">onClick="document.calculator.ans.value=eval(document.calculator.ans.value)"> br>Solution is input type="textfield" name="ans" value=""> form> body> html> 

Источник

Читайте также:  Slice from array javascript
Оцените статью