| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Цель данной лабораторной работы - знакомство с инструментами построения пользовательских интерфейсов web-сайтов: HTML, CSS. В ходе выполнения работы, вам предстоит ознакомиться с кодом реализации простого калькулятора, и затем выполнить задания по варианту.
HTML - это язык разметки, с помощью которого описывается содержимое веб-страницы: текстовые поля, таблицы, кнопки, заголовки, ссылки, в общем - все, что пользователь видит на странице. Для использования HTML-элементов на странице используются тэги. В основном на каждый элемент в документе приходится по два тэга: открывающий и закрывающий, но для обозначения некоторых элементов достаточно только открывающего. У тэгов могут быть атрибуты, с помощью которых задается дополнительная информация об html-элементе. Синтаксис объявления html-элемента выглядит примерно так:
<тэг атрибут="значение_атрибута">Содержимое тэга</тэг>Рассмотрим некоторые html-элементы и их тэги:
В html присутствуют 6 тэгов для выделения заголовков:
<h1>Этот текст будет отображен браузером как заголовок первого уровня (крупнейший)</h1>
<h2>А этот - как заголовок второго уровня (поменьше) </h2>
...
<h6>Самый мелкий заголовок</h6>текст можно форматировать:
<i> Этот текст будет отображен курсивом </i>
<b> этот будет выделен жирным </b>
<u> а этот будет подчеркнут </u>текст можно группировать в параграф (абзац):
<p>Это параграф какого-то текста.</p>
<p>Следующий параграф текста</p>ненумерованный список (unordered list UL)
<ul> <!-- начинаем ненумерованный список-->
<li> первый элемент списка </li>
<li> второй элемент списка </li>
<li> третий элемент списка </li>
</ui> <!-- список закончен -->Нумерованный список (ordered list OL):
<ol>
<li> первый элемент списка </li>
<li> второй элемент списка </li>
</ol>ссылка на ресурс
Для создания ссылки используется парный тэг <a>. У него присутствует несколько атрибутов, позволяющих ссылку настроить:
href- адрес ресурса, на который ссылка ссылается, например https://google.com
target - в каком фрейме (окне) открывать документ, по умолчанию стоит в текущем.
<!-- переход по этой ссылке откроет google.com в текущем окне -->
<a href="https://google.com"> Click me! </a>
<!-- эта ссылка открое google.com в новом окне браузера -->
<a href="https://google.com" target="_blank"> Click me! </a>якорь
Внутри HTML-страницы с помощью того-же тэга <a> можно расставить так называемые “якоря”. Грубо говоря, это - закладки на странице. Якоря затем можно использовать в гиперссылках для перемещения к определенному элементу страницы, где установлен якорь.
<p>
<a name="some_paragraph"></a> <!-- устанавливаем якорь -->
Lorem Ipsum is simply dummy text of ...
</p>
<p>
Следующий параграф текста, в котором мы установим ссылку на якорь.
<a href="#some_paragraph">При нажатии на эту ссылку, пользователь будет перенаправлен к месту установки якоря.</a>
</p>Простейший html-документ выглядит следующим образом:
<!DOCTYPE html> <!--Указание браузеру, какой стандарт HTML использовать (сейчас HTML 5 по умолчанию)-->
<html lang="ru"> <!--Начало html-блока. Можно указать язык, чтобы избежать ошибок отображения текста-->
<!-- секция head, как правило, используется для описания служебной и мета информации,
в ней также можно указывать ссылки на нужные странице ресурсы, например, шрифты, скрипты и т.д.-->
<head>
<meta charset="UTF-8"> <!--указание кодировки символов-->
<title>Моя первая страница</title> <!--Заголовок страницы, который будет отображен во вкладке браузера-->
</head>
<!--секция body - это тело документа. Здесь размещается вся информация, которая будет показана на странице-->
<body>
<h2>Lorem Ipsum</h2>
</body>
</html> <!--конец html-документа -->HTML-элементов существует большое количество, мы рассмотрели лишь небольшую часть. Почитать про другие HTML-тэги, чтобы научиться вставлять изображения, таблицы, поля ввода, формы и прочее можно здесь.
Для данной лабораторной работы будем использовать VS Code.
В HTML-файл поместите следующее содержимое. Здесь определёны все составляющие калькулятора (кнопки и поле вывода результата вычислений). Для каждого активного элемента определен атрибут id ( уникальный идентификатор), он потребуется в дальнейшем, чтобы обращаться к элементам из JavaScript.
<!DOCTYPE html>
<html>
<head>
<title>Калькулятор</title>
</head>
<body>
<div> <!-- div - это базовый html-контейнер, который может содержать в себе другие html-элементы. -->
<!-- блок с экраном калькулятора, где будет выводиться результат вычислений. -->
<div id="result">
0
</div>
<!-- блок с кнопками калькулятора. -->
<div>
<!--горизонтальный ряд из четырех кнопок-->
<div>
<button id="btn_op_clear">C</button> <!-- про тэг кнопки: https://www.w3schools.com/tags/tag_button.asp -->
<button id="btn_op_sign">+/-</button>
<button id="btn_op_percent">%</button>
<button id="btn_op_div">/</button>
</div>
<div>
<button id="btn_digit_7">7</button>
<button id="btn_digit_8">8</button>
<button id="btn_digit_9">9</button>
<button id="btn_op_mult">x</button>
</div>
<div>
<button id="btn_digit_4">4</button>
<button id="btn_digit_5">5</button>
<button id="btn_digit_6">6</button>
<button id="btn_op_minus">-</button>
</div>
<div>
<button id="btn_digit_1">1</button>
<button id="btn_digit_2">2</button>
<button id="btn_digit_3">3</button>
<button id="btn_op_plus">+</button>
</div>
<div>
<button id="btn_digit_0">0</button>
<button id="btn_digit_dot">.</button>
<button id="btn_op_equal">=</button>
</div>
</div>
</div>
</body>
</html>Если открыть этот HTML-документ в браузере, мы получим не самый изящный калькулятор. Чтобы задать параметры внешнего вида элементов, необходимо использовать CSS.
CSS (Cascading Style Sheets) - каскадные таблицы стилей. С помощью этого инструмента мы можем кастомизировать отображение различных HTML-элементов на странице, например сделать кнопки круглыми или задать им определенный цвет.
Рассмотрим синтаксис. CSS-правило (стиль) содержит селектор и блок объявлений. Селектор определяет к каким HTML-элементам нужно применить перечисленные в блоке объявлений свойства.
имя_селектора {
свойство1: значение;
свойство2: значение;
...
} CSS element Selector
Существует несколько видов селекторов. Например, если мы хотим задать одинаковые правила для всех заголовков первого уровня, мы можем создать CSS-правило с именем селектора h1. Также можно поступить и с другими HTML-элементами.
/* css */
h1 {
color: blue;
font-size: 12px;
} <!-- HTML -->
<body>
<h1>Заголовок</h1>
<h1>Еще заголовок</h1>
</body>Теперь, при использовании тэга <h1> в HTML документе, ко всем заголовкам первого уровня будут применены заданные правила: синий цвет и размер шрифта в 12px.
CSS id Selector
Селектор по идентификатору позволяет задать правила для конкретного HTML-элемента с конкретным уникальным идентификатором. Имя такого селектора совпадает с идентификатором HTML-элемента, но начинается с решётки:
<!-- HTML -->
<div id="my_custom_element">
Lorem Ipsum is simply dummy text
</div>/* css */
#my_custom_element {
text-align: center;
color: red;
}CSS class Selector
У HTML-элементов есть атрибут class. Классовый селектор применяет заданные CSS свойства к тем HTML-элементам, которые принадлежат конкретному классу. Причем один HTML-элемент может принадлежать сразу к нескольким классам. Имя такого селектора начинается с точки.
/* css */
/* синий текст по центру */
.my-centered-blue {
text-align: center;
color: blue;
}
/* огромный текст курсивом */
.my-large-italic {
font-size: xxx-large;
font-style: italic;
}<!-- HTML -->
<p class="my-centered-blue my-large-italic">
Этот параграф принадлежит к двум классам, поэтому комбинирует их свойства
</p>
<div class="my-large-italic">
Этот блок принадлежит только к классу my-large-italic
</div>Также можно создать классовый селектор, дейсвующий только на конкретный тип HTML-элементов, например на параграфы:
/* css */
p.my-large-italic {
font-size: xxx-large;
font-style: italic;
}Существует несколько вариантов встраивания CSS-правил в HTML-документ. CSS можно расположить в секции <head>, в рамках тэга <style>
<!-- HTML -->
<head>
<title>калькулятор</title>
<style>
.my-center-red {
color: red;
text-align: center;
}
</style>
</head>
<body>
<p class="my-center-red"> Hello! </p>
</body>Второй, более предпочтительный, вариант - описание CSS стилей в отдельном файле, подключить который к HTML-документу можно сославшись на него в секции head:
<head>
<title>калькулятор</title>
<!-- указываем, что файл style.css содержит таблицу стилей (stylesheet) -->
<link rel="stylesheet" href="style.css">
</head>Браузер, читая html документ подгрузит стили из этого файла.
Также есть возможность задать стиль для элемента напрямую через атрибут style, но делать так не рекомендуется:
<button style="margin-right: 5px; backgroud: red;">Красная кнопка</button>Приступим к стилизации созданной ранее верстки калькулятора. Создайте css-файл и пропишите в нем стили для элементов калькулятора: кнопок и окна вывода.
/* опишем базовый стиль кнопки калькулятора */
.my-btn {
margin-right: 5px; /* задаем отступ от кнопки справа */
margin-top: 5px; /* задаем отступ от кнопки сверху*/
width: 50px; /* задаем ширину кнопки */
height: 50px; /* задаем высоту кнопки */
border-radius: 50%; /* округляем кнопку */
border: none; /* отключаем обводку */
background: #515151; /* задаем серый цвет кнопки */
color: white; /* задаем белый цвет текста внутри кнопки */
font-size: 1.5rem; /* увеличим размер шрифта */
font-family: Arial, Helvetica, sans-serif; /* сменим шрифт */
cursor: pointer; /* при наведении на кнопку курсор будет изменен
со стрелки на 'указательный палец' */
user-select: none; /* отключаем возможность выделить текст внутри кнопки */
}
/* hover - это состояние элемента, когда на него наведен курсор */
.my-btn:hover {
background: darkgray; /* при наведение курсора на кнопку, она будет окрашена в серый */
}
/* active - это состояние активации элемента. В случае кнопки - нажатие на нее */
.my-btn:active {
filter: brightness(130%); /* увеличим интенсивность цвета для эффекта вспышки */
}
/* селектор для кнопок первостепенных операций */
.my-btn.primary {
background: #ff9801; /* цвет кнопки оранжевый */
}
/* селектор для кнопок второстепенных операций */
.my-btn.secondary {
background: #a6a6a6; /* цвет кнопки сервый */
}
/* селектор для кнопки расчета выражения (=) */
.my-btn.execute {
width: 110px; /* сделаем кнопку шире других */
border-radius: 34px; /* подкорректируем округлость */
}
/* селектор для поля вывода результата */
.result {
width: 220px;
height: 50px;
margin-bottom: 15px; /* отступ снизу */
padding-right: 10px; /* выступ справа */
background: rgb(73, 73, 73); /* цвет можно задавать и таким образом */
text-align: right; /* примагнитим текст к правой стороне */
color: #ffffff; /* цвет текста белый */
font-size: 1.5rem;
font-family: Arial, Helvetica, sans-serif;
}Теперь заполним атрибут class у HTML-элементов калькулятора, чтобы применить к ним созданные стили:
Кнопки циферблата: 0-9 и точка относятся к классу my-btn:
...
<button id="btn_digit_7" class="my-btn">7</button>
<button id="btn_digit_8" class="my-btn">8</button>
<button id="btn_digit_9" class="my-btn">9</button>
...Кнопки второстепенных операций (C, +/-, %) принадлежат классам my-btn и secondary:
...
<button id="btn_op_clear" class="my-btn secondary">C</button>
<button id="btn_op_sign" class="my-btn secondary">+/-</button>
<button id="btn_op_percent" class="my-btn secondary">%</button>
...Кнопки первостепенных операций принадлежат к классам my-btn и primary:
<button id="btn_op_mult" class="my-btn primary">x</button>
...
<button id="btn_op_minus" class="my-btn primary">-</button>
...
<button id="btn_op_plus" class="my-btn primary">+</button>Кнопка “=” дополнительно относится еще и к классу execute:
<button id="btn_op_equal" class="my-btn primary execute">=</button>Блок с экраном калькулятора относим к классу result:
<div id="result" class="result">
0
</div>Если все выполнено верно, изображение страницы должно соответствовать требуемому.
| Back | FazBrowse Home | New Git URL |