Новина дня
Сьогодні відбулася важлива подія у світі технологій...
HTML — HyperText Markup Language, мова розмітки для структурування та семантики вебсторінок (текст, зображення, посилання).
Не є мовою програмування, а декларативною мовою розмітки.
Cучасна версія HTML5 — Living Standard (живий стандарт), що постійно оновлюється. Використовується з CSS ( для оформлення) і JavaScript (для поведінки).
Призначення — описувати структуру та семантику контенту, який браузер відображає користувачеві.
Разом вони формують основу фронтенд-розробки:
HTML — «кістяк»,
CSS — «одяг»,
JavaScript — «поведінка».
HTML теги — це елементи мови розмітки (інструкції,команди), які визначають структуру і зміст веб-сторінки.
Теги записуються у кутових дужках: <tagname>.
Більшість тегів мають відкриваючу (<p>) і закриваючу (</p>) частину.
Через теги браузер розуміє, що є заголовок, абзац, список, таблиця, посилання, зображення чи інший елемент сторінки.
Деякі теги є самозакриваючимися (void tags), наприклад <img>, <br>, <hr>, які
не мають закриваючого тегу.
Атрибути — це додаткові властивості тегів, які визначають їхню поведінку або налаштовують зовнішній вигляд/дані елемента.
Атрибути пишуться всередині відкриваючого тегу: <tagname attribute="value">.
Вони надають елементу додаткову інформацію, наприклад:
id — унікальний ідентифікатор елементаclass — класи для стилів CSSsrc — шлях до зображення чи медіаhref — посилання для <a> тегуДеякі атрибути є обов’язковими, інші — необов’язковими.
Завдяки атрибутам HTML стає більш гнучким і функціональним, дозволяючи стилізувати і взаємодіяти з елементами через CSS та JavaScript.
Блокові елементи ( <div>, <p>, <h1>–<h6>,
<section>, <article>, <ul>, <li> ):
Рядкові (inline) елементи ( <span>, <a>, <strong>,
<em>, <img> ):
Тип відображення можна змінювати через CSS: display: block;, display: inline;,
display: inline-block; тощо.
<div> і <span> в HTML?<div> (division) — блоковий елемент для групування великих фрагментів контенту.
<div class="card">
<h2>Заголовок</h2>
<p>Опис всередині блоку.</p>
</div>
<span> — рядковий елемент для виділення чи стилізації невеликої частини тексту або контенту.
<p>Це <span class="highlight">важливе слово</span> у реченні.</p>
Обидва елементи не мають власного семантичного значення, а використовуються як «контейнери» для стилізації та групування контенту через CSS або JavaScript.
HTML елемент — це відкриваючий тег + контент + закриваючий тег.
Елементи можуть бути:
<p>, <div>, <h1><img>, <br>, <hr>Елементи утворюють ієрархію (дерево DOM), де один елемент може містити інші, формуючи батьківські та дочірні відносини.
Приклади:
<h1>Заголовок</h1> — елемент заголовка
<p>Абзац тексту</p> — елемент абзацу
<img src="photo.jpg" alt="Фото"> — елемент зображення (самозакриваючий)
Базова структура HTML-документа містить:
<!DOCTYPE html> — оголошення типу документа, вказує браузеру, що використовується HTML5.<html> — кореневий елемент всього документа.<head> — мета-дані сторінки:
<title> — заголовок у вкладці браузера<meta> — кодування, ключові слова, автор, viewport для адаптивності<link> і <script><body> — вміст сторінки, що відображається користувачу: текст, зображення, посилання, таблиці, форми, скрипти.Приклад мінімальної HTML-сторінки:
<!DOCTYPE html>
<html lang="uk">
<head>
<meta charset="UTF-8">
<title>Моя сторінка</title>
</head>
<body>
<h1>Привіт, світ!</h1>
<p>Це мій перший HTML-документ.</p>
</body>
</html>
DOCTYPE (Document Type Declaration) — декларація типу документа, яка повідомляє браузеру, яку версію HTML використовує сторінка.
<!DOCTYPE html>
<head> і яка його роль?
<head> містить метаінформацію та підключає зовнішні ресурси, що не видно на сторінці, але важливі для
браузера, оптимізації, SEO та коректного відображення веб-сторінки.
Найчастіше зустрічаються елементи:
<title> — заголовок сторінки у вкладці браузера;<meta> — кодування (charset), опис сторінки, ключові слова, автор, viewport для адаптивності;<link> — підключення CSS;<link rel="icon"> — підключення фавіконки;<script> — підключення зовнішніх JS-файлів (якщо не в кінці <body>);<style> — внутрішні стилі CSS (якщо потрібні).Приклад:
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Моя сторінка</title>
<link rel="stylesheet" href="style.css">
</head>
<body> і яка його роль у HTML-документі?
<body> — головний контейнер, який містить весь видимий контент сторінки, розбитий на блоки та елементи для
структурування та відображення.
Структура <body>:
<div>, <section>, <article>, <header>,
<footer>
<span>, <a>, <strong>, <em><h1>–<h6>, <p>, <span><img>, <video>, <audio><a>, <nav><ul>, <ol>, <table><form>, <input>, <button>Приклад:
<body>
<h1>Привіт, світ!</h1>
<p>Це мій перший HTML-документ.</p>
<img src="image.jpg" alt="Приклад зображення">
</body>
<meta> і для чого вони потрібні?
Метатеги <meta> — це елементи в <head>, які містять мета-інформацію про сторінку для
браузерів і пошукових систем. Метатеги не відображаються на сторінці, але впливають на:
Види метатегів і їх призначення:
<meta charset="UTF-8"> — задає кодування сторінки,
<meta name="description" content="Опис сторінки для пошукових систем"> — короткий опис для SEO,
<meta name="keywords" content="HTML, CSS, SEO"> — ключові слова (в сучасному SEO майже не використовуються)
<meta name="viewport" content="width=device-width, initial-scale=1.0"> — адаптивність для мобільних пристроїв
<meta http-equiv="refresh" content="30"> — автоматичне оновлення сторінки через 30 секунд
<meta property="og:title" content="Назва сторінки"> — для Facebook, LinkedIn
<meta name="twitter:card" content="summary"> — для Twitter
<meta name="author" content="Ім’я автора">
Фавікон — це маленька іконка сайту, що відображається у вкладці браузера, закладках або історії. Підключається через тег
<link> у <head>.
Він покращує впізнаваність сайту, виділяє вкладку серед багатьох відкритих, додає професійний вигляд веб-сторінці.
<link rel="icon" href="favicon.ico" type="image/x-icon">
Основні атрибути:
rel="icon" — вказує, що це фавіконhref — шлях до файлу іконкиtype — тип файлу (image/x-icon, image/png тощо)class і як його використовують?
Атрибут class використовується для групування елементів для стилізації або маніпуляцій через CSS і JavaScript і
дозволяє призначати один або кілька класів елементу.
Приклад:
<p class="highlight important">Це важливий абзац.</p>
Можна звертатись у CSS:
.highlight { color: red; }
.important { font-weight: bold; }
Атрибут class використовується для повторного застосування стилів та зручної взаємодії через JavaScript.
id і чим він відрізняється від class?
Атрибут id надає елементу унікальний ідентифікатор, тоді як class може бути спільним для кількох
елементів.
id повинен бути унікальним на сторінці і використовується для:
#elementID { ... }document.getElementById('elementID')<a href="#section1">Перейти</a>Приклад:
<div id="header">Верхня частина сторінки</div>
Існує 3 типи підключення CSS:
Зовнішній CSS (рекомендований для великих сайтів). Розміщується у<head>, всі стилі виносяться в окремий файл:
<link rel="stylesheet" href="style.css">
Внутрішній CSS у <head> у блоці <style>
Зручно для невеликих проєктів або тестування:
<style>
body { background-color: #f0f0f0; }
p { color: blue; }
</style>
Інлайн-стилі (усередині тегу через атрибут style). Використовуються рідко, тільки для швидких змін.
<p style="color: red; font-size: 16px;">Текст червоним</p>
Висновок: зовнішній CSS дозволяє розділяти контент і стиль, що спрощує підтримку і масштабування сайту.
Існує 2 типи підключення JavaScript:
Зовнішній скрипт (рекомендований спосіб):
JavaScript підключають через тег <script> для додавання інтерактивності на веб-сторінку. Розміщується в
<head> або перед закриваючим </body> (краще внизу для швидшого завантаження).
<script src="script.js"></script>
Внутрішній скрипт (безпосередньо у HTML):
<script>
console.log("Привіт, світ!");
</script>
Атрибут defer каже браузеру завантажувати скрипт у фоновому режимі та виконати його після того, як HTML-документ буде повністю
побудований.
<script src="script.js" defer></script> <!-- підключення скрипта з defer -->
Можливості JavaScript:
<h1>–<h6> і їх роль?
Заголовки в HTML — це теги <h1>–<h6>, які використовуються для позначення заголовків різних рівнів на
веб-сторінці.
<h1> — найважливіший заголовок (зазвичай основна тема сторінки)<h2>–<h6> — підзаголовки, де <h6> має найменшу важливістьРоль заголовків:
Приклад використання:
<h1>Моя сторінка</h1>
<h2>Розділ 1</h2>
<h3>Підрозділ 1.1</h3>
<h2>Розділ 2</h2>
Використання заголовків впливає на SEO, доступність і логіку структури контенту.
Порожні (void) елементи не мають контенту і закриваючого тега.
<br> — розрив рядка<hr> — горизонтальна лінія<img> — зображення<input> — поле вводу<meta>, <link> — метадані/ресурси<img src="photo.jpg" alt="Фото" />
<br />
<input type="text" name="name" />
Семантичні теги — це теги, які мають зрозуміле значення і призначення для контенту. Браузер, пошукові системи та допоміжні технології (наприклад, скрінрідери) розуміють їхній зміст без додаткових пояснень.
Приклади семантичних тегів і їх призначення:
<header> — шапка сторінки або секції<nav> — навігаційне меню<main> — головний вміст сторінки<article> — окремий змістовний блок (стаття, пост)<section> — розділ сторінки<aside> — бічна панель або додаткова інформація<footer> — підвал сторінки або секції<h1>–<h6> — заголовки різних рівнів<figure> — ілюстрація або графіка з підписом<figcaption> — підпис до <figure><mark> — виділений текст, важливий для користувача<time> — дата або час<address> — контактна інформація<summary> — заголовок для елемента <details>.<details> — деталі, які можна розкривати/згортати<blockquote> — цитата з іншого джерела<q> — коротка цитатаНесемантичні теги: це теги, які не дають інформації про зміст. Вони просто контейнер без конкретного значення і визначають структуру або зовнішній вигляд контенту, але не пояснюють, що всередині. Пошукові системи та скрінрідери не розуміють їхнього значення.
<div> — просто контейнер<span> — виділення частини текстуHTML-теги для форматування тексту змінюють його вигляд без зміни семантики:
<strong> — важливий текст (жирний, з акцентом на значенні — семантичний).
<b> — жирний текст (без семантичного значення).<em> — наголошений текст (курсив, підкреслює інтонацію — семантичний).<i> — курсивний текст (без семантики, наприклад для назв).<u> — підкреслений текст.<mark> — виділений маркером (жовтим за замовчуванням).<s> — перекреслений текст (неактуальний).<small> — зменшує розмір шрифту.<sub> — нижній індекс (H₂O).<sup> — верхній індекс (x²).Це <b>жирний</b> текст.
Це <i>курсив</i> текст.
Це <u>підкреслений</u> текст.
Це <mark>виділений</mark> текст.
Результат на сторінці:
Це жирний текст.
Це курсив текст.
Це підкреслений текст.
Це виділений текст.
Пробільний простір — пробіли, табуляції та переноси рядків. Браузер зазвичай схлопує кілька пробілів до одного, кілька переносів — до пробілу; початкові та кінцеві пробіли ігноруються.
Приклад:
<p>Цей текст має багато пробілів</p>
Відображення: Цей текст має багато пробілів
Щоб зберегти пробіли й переноси — CSS white-space: pre або тег <pre>.
<p> і як їх використовують?
<p> — тег для створення абзаців тексту на веб-сторінці. Він відокремлює логічні блоки тексту та додає
вертикальні відступи між ними. Використовується для структурування текстового контенту, щоб він був читабельним.
Приклад:
<p>Це перший абзац тексту на сторінці.</p>
<p> А це другий абзац, який відокремлений від першого.</p>
<p> — блоковий елемент, займає всю ширину контейнера і починається з нового рядка. Можна комбінувати з CSS для стилізації:
кольори, шрифти, відступи, міжрядковий інтервал.
OL та UL у HTML і як їх створюють?В HTML існують два основні типи списків для впорядкування елементів:
<ul> — ненумерований список (маркери/bullet points).<ol> — нумерований список (цифри або букви).<li> — елемент списку, використовується всередині <ul> або <ol>.<ul>
<li>Яблуко</li>
<li>Банан</li>
</ul>
<ol>
<li>Підготовка</li>
<li>Виконання</li>
</ol>
DL, DT, DD і як їх використовують?Описові списки дозволяють створювати пари «термін — опис»:
<dl> — контейнер описового списку.<dt> — термін.<dd> — опис терміну.<dl>
<dt>HTML</dt>
<dd>Мова розмітки для створення веб-сторінок.</dd>
<dt>CSS</dt>
<dd>Мова стилів для оформлення веб-сторінок.</dd>
</dl>
Результат на сторінці:
Таблиці використовуються для впорядкування даних у рядки та стовпці:
<table> — контейнер таблиці.<tr> — рядок таблиці.<th> — заголовочна комірка (жирна, по центру).<td> — звичайна комірка з даними.<table style="border-collapse: collapse;">
<tr>
<th style="border: 1px solid #000; padding: 5px;">Ім’я</th>
<th style="border: 1px solid #000; padding: 5px;">Вік</th>
</tr>
<tr>
<td style="border: 1px solid #000; padding: 5px;">Оля</td>
<td style="border: 1px solid #000; padding: 5px;">25</td>
</tr>
<tr>
<td style="border: 1px solid #000; padding: 5px;">Іван</td>
<td style="border: 1px solid #000; padding: 5px;">30</td>
</tr>
</table>
Результат на сторінці:
| Ім’я | Вік |
|---|---|
| Оля | 25 |
| Іван | 30 |
Мнемонізація в HTML — це використання спеціальних символьних кодів (мнемонік),
які починаються з & та закінчуються на ;.
Вони дозволяють відображати символи, які мають службове значення в HTML або
не завжди доступні на клавіатурі.
Приклади:
< → < (менше)> → > (більше)& → & (амперсанд)" → " (лапки)© → © (знак копірайту) → (нерозривний пробіл)<article> у HTML?
<article> — семантичний тег, який використовується для самостійного, незалежного блоку контенту, що може існувати
окремо від іншої частини сторінки.
<article>
<h3>Новина дня</h3>
<p>Сьогодні відбулася важлива подія у світі технологій...</p>
</article>
Результат на сторінці:
Сьогодні відбулася важлива подія у світі технологій...
Вкладені списки дозволяють створювати ієрархічну структуру елементів:
<p>Продукти:</p>
<ul>
<li><u>Фрукти</u>
<ul>
<li>Яблуко</li>
<li>Банан</li>
</ul>
</li>
<li><u>Овочі</u>
<ul>
<li>Морква</li>
<li>Буряк</li>
</ul>
</li>
</ul>
Результат на сторінці:
Продукти:
Коментарі в HTML використовуються для пояснень у коді, які не відображаються на сторінці:
<!-- Це коментар, він не відображається на сторінці -->
<p>Цей абзац відобразиться.</p>
<!-- <p>Цей абзац прихований.</p> -->
Результат на сторінці:
Цей абзац відобразиться.
<abbr> та <acronym> і як їх
використовувати?
Теги для скорочень надають користувачу додаткову інформацію при наведенні:
<abbr title="HyperText Markup Language">HTML</abbr> — абревіатура з підказкою.<acronym> — аналогічно, але застарілий у HTML5 (рекомендовано <abbr>).<p>Мова розмітки: <abbr title="HyperText Markup Language">HTML</abbr></p>
Результат на сторінці:
Мова розмітки: HTML
<code>, <pre>?Для відображення коду використовують спеціальні теги:
<code> — короткий фрагмент коду всередині абзацу.<pre> — блок коду з форматуванням пробілів і переносів рядків.<p>Приклад функції: <code>alert('Hello');</code></p>
<pre>
function greet() {
alert('Привіт!');
}
</pre>
Результат на сторінці:
Приклад функції: alert('Hello');
function greet() {
alert('Привіт!');
}
<q> і <blockquote>?Для вставки цитат використовуються два основні теги:
<q> — короткі цитати в тексті, вставляє лапки автоматично.<blockquote> — довгі цитати або виділені абзаци.<p>Як сказав Вінстон Черчілль: <q>Never give up.</q></p>
<blockquote>Це приклад довгої цитати, яка виділяється блоком.</blockquote>
Результат на сторінці:
Як сказав Вінстон Черчілль: Never give up.
Це приклад довгої цитати, яка виділяється блоком.
<br> і <hr> і як їх використовувати?Порожні (void) теги не мають закриваючого тегу і використовуються для вставки окремих елементів без контенту.
<br> — розрив рядка всередині тексту:<p>Перше речення.<br>Друге речення на новому рядку.</p>
<hr> — горизонтальна лінія для візуального поділу контенту:<h2>Розділ 1</h2>
<hr>
<h2>Розділ 2</h2>
Важливо: використовувати ці теги тільки для їхньої семантичної мети, а не для створення відступів чи форматування абзаців.
<ul>):
list-style-type).<ul>
<li>Пункт 1</li>
<li>Пункт 2</li>
<li>Пункт 3</li>
</ul>
<ol>):
type або CSS (list-style-type).<ol>
<li>Перший пункт</li>
<li>Другий пункт</li>
<li>Третій пункт</li>
</ol>
Поради:
<ul> та <ol>.list-style-type дозволяє змінювати стиль маркерів (disc, circle, square, decimal, lower-alpha тощо).<small> і <strong> у HTML?Ці теги використовуються для семантичного виділення тексту:
<small> — відображає текст меншим розміром, використовується для приміток, уточнень, ліцензійних текстів.<strong> — означає важливий текст, семантично виділяє його. Браузери за замовчуванням роблять його жирним.<p>Це звичайний текст. <small> А це примітка дрібним шрифтом.</small></p>
<p>Важливе повідомлення: <strong>Увага!</strong></p>
Результат на сторінці:
Це звичайний текст. А це примітка дрібним шрифтом.
Важливе повідомлення: Увага!
<sub> і <sup>?Теги застосовуються для відображення тексту у вигляді нижніх або верхніх індексів:
<sub> — нижній індекс (наприклад, у хімічних формулах).<sup> — верхній індекс (наприклад, степені чи примітки).<p>Хімічна формула: H<sub>2</sub>O</p>
<p>Математика: x<sup>2</sup> + y<sup>2</sup> = r<sup>2</sup></p>
Результат на сторінці:
Хімічна формула: H2O
Математика: x2 + y2 = r2
<details> і <summary> у HTML?
<details> і <summary> дозволяють створювати розкривні блоки, які користувач може відкрити
або закрити.
<details> — контейнер, який приховує/показує вміст.<summary> — заголовок блоку, на який можна натиснути, щоб розкрити вміст.За замовчуванням вміст прихований, а після кліку на заголовок — відображається.
<details>
<summary>Натисни, щоб дізнатися більше</summary>
<p>Цей текст з’являється після розкриття.</p>
</details>
Результат на сторінці:
Цей текст з’являється після розкриття.
<address> у HTML?<address> використовується для позначення контактної інформації автора чи власника документа або статті.
<footer>
<address>
Автор: Іван Петренко<br>
Email: <a href="mailto:ivan@example.com">ivan@example.com</a><br>
Київ, Україна
</address>
</footer>
Результат на сторінці:
<aside> у HTML?
<aside> — семантичний тег, який використовується для контенту,
пов’язаного з основним змістом, але не є його частиною.
<article>
<h2>Основний текст статті</h2>
<p>Це головний контент сторінки.</p>
<aside>
<h3>Додаткова інформація</h3>
<p>Це примітка або корисне посилання.</p>
</aside>
</article>
Результат на сторінці:
Це головний контент сторінки.
Тег <form> використовується для створення форми на веб-сторінці, яка збирає дані від користувача та відправляє їх на сервер.
<form action="/submit" method="post">
<input type="text" name="username" placeholder="Ваше ім’я" />
<button type="submit">Надіслати</button>
</form>
action — адреса, куди надсилаються дані. Вже не використовуєтьсяmethod — спосіб передачі: GET або POST.enctype — кодування даних (важливо для завантаження файлів).<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="photo" />
<button>Завантажити</button>
</form>
readonly — поле можна виділити, але не редагувати. disabled — поле неактивне і не відправляється з формою.
Тег <input> створює поле для вводу даних. Має багато типів:
text, password, emailcheckbox, radiofile, date, number, colorsubmit, reset, button<input type="email" name="mail" placeholder="Введіть email" />
Тег <label> зв’язує текст підпису з полем форми для зручності та доступності.
<label for="name">Ваше ім’я:</label>
<input id="name" type="text" />
Або обгортанням:
<label>Email: <input type="email" /></label>
Тег <textarea> створює багаторядкове текстове поле для введення великого обсягу тексту.
<textarea rows="4" cols="30" placeholder="Ваш відгук"></textarea>
Ці теги створюють випадаючий список:
<select> — контейнер списку.<option> — окремий пункт.<optgroup> — група пунктів.<select name="country">
<optgroup label="Європа">
<option>Україна</option>
<option>Польща</option>
</optgroup>
<optgroup label="Америка">
<option>США</option>
<option>Канада</option>
</optgroup>
</select>
<button> більш гнучкий: може містити текст, іконки, HTML-вміст. <input type="submit"> обмежується лише
кнопкою без внутрішнього контенту.
<button type="submit">🔒 Увійти</button>
<input type="submit" value="Увійти" />
Валідація форм — це перевірка правильності введених даних до відправлення на сервер.
required — обов’язкове поле.pattern — регулярний вираз.min, max, maxlengthtype="email", type="url" — автоматична перевірка.<input type="email" required placeholder="Ваш email" />
Для вставки аудіо використовується тег <audio>, а для відео — тег <video>.
Основні атрибути для обох елементів:
controls — показує елементи керування (старт, пауза, гучність).autoplay — автоматичний запуск при завантаженні.loop — зациклене відтворення.muted — початково без звуку.width / height — задають розміри відео (тільки для <video>).
Для відео можна додавати субтитри за допомогою <track>, а для обох елементів використовувати <source> для
різних форматів:
<audio controls>
<source src="song.mp3" type="audio/mpeg">
Ваш браузер не підтримує аудіо.
</audio>
<video width="320" height="240" controls autoplay loop muted>
<source src="movie.mp4" type="video/mp4">
<track src="subs.vtt" kind="subtitles" srclang="en" label="English">
Ваш браузер не підтримує відео.
</video>
Посилання створюються тегом <a> з атрибутом href, щоб переходити на інші сторінки, файли чи секції.
https://site.com/page.html).about.html, ../img/pic.jpg).Основні атрибути:
href — адреса ресурсу.target — спосіб відкриття (наприклад, _blank — у новій вкладці).rel — відношення до ресурсу (nofollow, noopener).download — вказує на завантаження файлу.title — підказка при наведенні.<a href="about.html" title="Про нас">Відносне посилання</a>
<a href="https://google.com" target="_blank" rel="noopener">Абсолютне посилання</a>
<a href="file.pdf" download>Завантажити PDF</a>
submit) або бути простою (button).<input type="hidden">, яке зберігає невидимі дані.<video>).<audio>, <video>).<script type="application/ld+json">.<meta name="description">, описує сторінку для пошукових систем.<iframe>.localStorage і sessionStorage для збереження даних.<link rel="preload"> для завантаження критичних ресурсів.
Зовнішній контент можна вставляти за допомогою тегів <iframe>, <embed>, <object> або
<script> для скриптів.
<iframe> — вбудовує інший HTML-документ у сторінку.<embed> — вставляє мультимедійний або плагінний контент.<object> — вставляє будь-який ресурс, включаючи HTML, SVG або мультимедіа.<script src="..."></script> — підключає зовнішній JavaScript.sandbox для <iframe>.<iframe src="https://example.com" width="600" height="400" sandbox></iframe>
<embed src="video.mp4" type="video/mp4">
<object data="graphic.svg" type="image/svg+xml"></object>
<script src="script.js"></script>
Семантичні теги описують зміст елемента та його роль у документі. Вони покращують SEO, доступність і структуру коду.
<header>, <footer>, <main><section>, <article>, <aside><nav>, <figure>, <figcaption><article> визначає самостійний, незалежний блок контенту: новина, пост, стаття.
<article>
<h2>Новина дня</h2>
<p>Текст новини...</p>
</article>
<section> групує тематично пов’язаний контент. Зазвичай має заголовок.
<section>
<h2>Контакти</h2>
<p>Email: info@example.com</p>
</section>
<header> — верхня частина сторінки або секції: логотип, меню.<footer> — нижня частина: контакти, авторське право.<header><h1>Мій сайт</h1></header>
<footer>© 2025 Всі права захищені</footer>
<nav> — контейнер для основних навігаційних посилань сайту.
<nav>
<a href="/">Головна</a> |
<a href="/about">Про нас</a> |
<a href="/contacts">Контакти</a>
</nav>
<main>?
Тег <main> визначає основний зміст сторінки, унікальний для цієї сторінки, відмінний від заголовків, навігації та футера.
<main>
<h1>Заголовок статті</h1>
<p>Основний текст статті...</p>
</main>
<figure> використовується для медіа (зображень, діаграм, коду), а <figcaption> — для підпису.
<figure>
<img src="diagram.png" alt="Схема" />
<figcaption>Схема процесу</figcaption>
</figure>
Тег <img> використовується для вставки зображень на веб-сторінку. Це самозакриваючийся (void) тег — не має закриваючого тегу.
Важливо:
alt для доступності та SEO.Основні атрибути:
src — шлях до зображення (локальний або URL)alt — альтернативний текст для доступності та SEOwidth / height — розміри зображення (опційно)title — підказка при наведенні миші<img src="logo.png" alt="Логотип компанії" width="150" height="100">
Для адаптивних зображень використовують атрибути srcset і sizes або тег <picture> з
<source>:
<img src="small.jpg"
srcset="small.jpg 480w, medium.jpg 800w, large.jpg 1200w"
sizes="(max-width: 600px) 480px, (max-width: 900px) 800px, 1200px"
alt="Адаптивне зображення">
<picture>
<source media="(max-width: 600px)" srcset="small.jpg">
<source media="(max-width: 1200px)" srcset="medium.jpg">
<img src="large.jpg" alt="Картинка">
</picture>
Векторні зображення через <svg> краще використовувати для логотипів, іконок та анімацій, де важлива масштабованість без
втрати якості.
<map> та <area> і як вони створюють клікабельні зони на зображенні?
Створюють інтерактивні зони на зображенні. <map name="mapName"> містить
<area shape="rect" coords="x1,y1,x2,y2" href="#">.
<time> і як його правильно використовувати?
Тег <time> використовується для позначення дати або часу у машиночитному форматі, що допомагає браузерам, пошуковим системам
і додаткам правильно обробляти часові дані.
datetime у форматі ISO 8601 (YYYY-MM-DD, YYYY-MM-DDThh:mm).<time datetime="2025-09-28T14:30">28 вересня 2025, 14:30</time>
<time datetime="2025-09-28">28 вересня 2025</time>
Визначення: SEO (Search Engine Optimization) — оптимізація сайту для пошукових систем, щоб він краще ранжувався у пошуку і привертав більше відвідувачів.
Мета SEO — зробити сторінку зручною для користувачів і зрозумілою для пошукових систем (Google, Bing тощо).
Основні складові SEO:
<header>, <article>, <section>),
заголовки (<h1>–<h6>), абзаци (<p>);
<title>, <meta name="description">, alt для зображень;SEO допомагає:
<title> — заголовок сторінки.<meta name="description"> — опис сторінки.<meta name="keywords"> — ключові слова.<head>
<title>Мій сайт</title>
<meta name="description" content="Опис сайту">
<meta name="keywords" content="HTML,CSS,SEO">
</head>
Тег <title> задає заголовок сторінки, який показується у вкладці браузера і використовується пошуковими системами.
<title>Головна сторінка — Мій сайт</title>
Open Graph теги (og:title, og:image тощо) допомагають коректно відображати сторінку при шарінгу у соцмережах.
<meta property="og:title" content="Мій сайт">
<meta property="og:image" content="image.jpg">
Тег <meta name="robots"> керує індексацією сторінки пошуковими системами.
index, noindex — дозволити/заборонити індексацію.follow, nofollow — дозволити/заборонити слідувати за посиланнями.Заголовки структурують контент:
<h1> — головна тема сторінки (один на сторінку).<h2>–<h6> — підрозділи.<link> або <style>?Через Google Fonts: <link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">.
Тег <link rel="canonical" href="URL"> вказує пошуковим системам, яка сторінка є основною, щоб уникнути дублювання контенту.
Доступність — це практики, які дозволяють людям з інвалідністю користуватися вебом (screen reader, клавіатура, контрастність).
aria-label — додає опис елемента для скрін-рідерів.aria-hidden="true" — приховує елемент від скрін-рідерів.Атрибут tabindex визначає порядок переходу між елементами за допомогою клавіші Tab.
<input type="text" tabindex="1">
<button tabindex="2">Надіслати</button>
<nav> для основного меню.aria-current="page" для поточної сторінки.<nav>
<a href="/" aria-current="page">Головна</a>
<a href="/about">Про нас</a>
</nav>
Семантичні теги (<header>, <main>, <footer>, <section>) допомагають
скрін-рідерам та допоміжним технологіям розуміти структуру сторінки і швидко переходити між розділами.
Контрастність — різниця між кольорами тексту і фону. Високий контраст покращує читабельність для людей з порушенням зору.
<label> для полів вводу.aria-required та aria-invalid.<label for="email">Email:</label>
<input id="email" type="email" aria-required="true">
<span id="error">Будь ласка, введіть валідний email</span>
HTML5 API — набір сучасних інтерфейсів для роботи з браузером:
Тег <canvas> дозволяє малювати графіку через JavaScript.
<canvas id="myCanvas" width="200" height="100"></canvas>
<script>
const ctx = document.getElementById('myCanvas').getContext('2d');
ctx.fillStyle = 'blue';
ctx.fillRect(10, 10, 150, 50);
</script>
Обидва API дозволяють зберігати дані на стороні клієнта:
LocalStorage — зберігає дані постійно.SessionStorage — зберігає дані на час сесії (закривається при закритті вкладки).localStorage.setItem('user', 'Ivan');
sessionStorage.setItem('token', '12345');
API для отримання координат користувача через браузер.
navigator.geolocation.getCurrentPosition(function(position) {
console.log(position.coords.latitude, position.coords.longitude);
});
Web Workers дозволяють запускати JavaScript у фоновому потоці без блокування UI.
const worker = new Worker('worker.js');
worker.postMessage('Hello');
Протокол для двостороннього зв’язку між клієнтом і сервером у реальному часі.
const socket = new WebSocket('wss://example.com');
socket.onmessage = (event) => console.log(event.data);
required, pattern, maxlength для базової перевірки.type="password" для полів введення пароля.csrf-token).localStorage чи cookie без шифрування.<form action="/submit" method="POST">
<input type="text" name="username" required pattern="[A-Za-z0-9]{3,20}">
<input type="password" name="password" required>
<button type="submit">Відправити</button>
</form>
Content Security Policy (CSP) — це механізм безпеки, який дозволяє веб-розробнику контролювати, які ресурси (скрипти, стилі, зображення, фрейми) можуть завантажуватися та виконуватися на сторінці.
Приклад заголовка CSP:
Content-Security-Policy: default-src 'self'; img-src https://cdn.example.com; script-src 'self' https://apis.google.com
У цьому прикладі:
'self').cdn.example.com.apis.google.com.Для зображень - відкладене завантаження зображень, щоб економити трафік та покращити швидкість завантаження сторінки - тільки при скролі.
<img src="photo.jpg" loading="lazy" alt="Фото">
Для скриптів - такі скрипти, які завантажуються лише коли вони потрібні або при взаємодії користувача.
defer — скрипт виконується після повного парсингу HTML.async — скрипт завантажується асинхронно та виконується одразу після завантаження.<script src="app.js" defer></script>
<script src="analytics.js" async></script>
Налаштовується через HTTP-заголовки, конфігурацію CDN або скрипти Service Workers.
PWA — веб-додаток із можливістю роботи офлайн, push-повідомленнями та встановленням на пристрій.
Кешування — це збереження браузером статичних ресурсів (зображень, CSS, JS, шрифтів) на комп’ютері користувача для швидшого завантаження сторінок.
Cache-Control, Expires).Cache-Control: max-age=31536000
Expires: Wed, 21 Oct 2025 07:28:00 GMT
WebP, AVIF).loading="lazy" для відкладеного завантаження.srcset і <picture> для адаптивних картинок.width і height, щоб уникати «стрибків» макета.<img src="photo.webp" alt="Фото" loading="lazy" width="600" height="400">
Критичний CSS — це мінімальний набір стилів, необхідний для відображення видимої частини сторінки (above the fold) під час першого завантаження.
<head>, щоб зменшити час до першого рендерингу.<link rel="stylesheet" media="print"> або preload.<style>
/* критичні стилі */
body { font-family: Arial, sans-serif; }
header { background: #333; color: #fff; padding: 1rem; }
</style>
<link rel="stylesheet" href="styles.css" media="print" onload="this.media='all'">
Мінімізація та бандлінг:
Web Storage API дозволяє зберігати дані на стороні клієнта у браузері. Складається з двох основних механізмів:
Використовується для збереження налаштувань користувача, стану додатка, тимчасових даних без необхідності серверного збереження.
// LocalStorage
localStorage.setItem('username', 'Ivan');
const name = localStorage.getItem('username');
// SessionStorage
sessionStorage.setItem('token', '12345');
const token = sessionStorage.getItem('token');
HTTPS (HyperText Transfer Protocol Secure) — це протокол обміну даними між браузером і сервером з використанням шифрування TLS/SSL.
Різниця між HTTP і HTTPS:
HTTP — передає дані у відкритому вигляді, легко перехопити.HTTPS — всі дані шифруються (TLS/SSL), захищені від атак.http://example.com ❌ незахищене з’єднання
https://example.com ✅ захищене з’єднання
SRI — механізм перевірки цілісності сторонніх ресурсів (JS, CSS), щоб браузер впевнився, що файл не змінений.
<script src="script.js" integrity="sha384-..." crossorigin="anonymous"></script>
Покращення швидкості відображення сторінки за рахунок завантаження лише критично важливих ресурсів спочатку (CSS, JS, шрифти).