Вивчай
HTML

HTML теги шпаргалка: повний довідник

HTML теги шпаргалкаHTML теги шпаргалка

Повний довідник HTML тегів з прикладами правильного та неправильного використання. Детальніше — в уроках HTML.

Структура документа

Структура HTML документаСтруктура HTML документа

<!DOCTYPE html>
<html lang="uk">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Назва сторінки</title>
  </head>
  <body>
    <!-- Контент сторінки -->
  </body>
</html>

Детальніше — в уроці про структуру HTML.


Семантичні теги

ТегПризначення
<header>Верхня частина сторінки або секції
<nav>Блок навігації
<main>Основний контент (один на сторінку!)
<section>Логічна секція з заголовком
<article>Самостійний блок (стаття, пост, коментар)
<aside>Бічний контент (sidebar, рекомендації)
<footer>Нижня частина сторінки або секції
<!-- Правильно: семантичні теги -->
<header>
  <nav>...</nav>
</header>
<main>
  <article>
    <h2>Стаття</h2>
    <p>Текст...</p>
  </article>
</main>
<footer>...</footer>

<!-- Неправильно: div замість семантики -->
<div class="header">
  <div class="nav">...</div>
</div>
<div class="main">
  <div class="article">...</div>
</div>

Детальніше — в уроці про семантичний HTML.


Текст та заголовки

ТегПризначенняПриклад
<h1>...<h6>Заголовки (h1 — найважливіший)<h1>Головний</h1>
<p>Абзац тексту<p>Текст...</p>
<strong>Важливий текст (жирний)<strong>увага</strong>
<em>Наголос (курсив)<em>наголошено</em>
<mark>Виділений текст<mark>виділено</mark>
<del>Видалений текст<del>старе</del>
<ins>Вставлений текст<ins>нове</ins>
<sub>Нижній індексH<sub>2</sub>O
<sup>Верхній індексE=mc<sup>2</sup>
<blockquote>Блочна цитата<blockquote>Цитата</blockquote>
<code>Код (inline)<code>let x = 1</code>
<pre>Форматований текст (зберігає пробіли)<pre> відступ</pre>
<br>Розрив рядкаРядок 1<br>Рядок 2
<hr>Горизонтальна лінія-розділювач<hr>
<!-- Правильно: h1 один на сторінку, ієрархія -->
<h1>Назва сайту</h1>
<h2>Розділ</h2>
<h3>Підрозділ</h3>

<!-- Неправильно: пропуск рівнів, кілька h1 -->
<h1>Заголовок 1</h1>
<h1>Заголовок 2</h1>  <!-- другий h1! -->
<h4>Підрозділ</h4>    <!-- пропуск h2, h3 -->
<!-- Правильно: strong для смислового наголосу -->
<p><strong>Увага:</strong> не видаляйте цей файл.</p>

<!-- Неправильно: b просто для жирного -->
<p><b>Увага:</b> не видаляйте цей файл.</p>

Детальніше — в уроці про текстове форматування.


Списки

ТегПризначення
<ul>Невпорядкований список (маркери)
<ol>Впорядкований список (нумерація)
<li>Елемент списку
<dl>Список визначень
<dt>Термін
<dd>Визначення терміну
<!-- Невпорядкований -->
<ul>
  <li>JavaScript</li>
  <li>TypeScript</li>
</ul>

<!-- Впорядкований -->
<ol>
  <li>Встанови Node.js</li>
  <li>Створи проєкт</li>
</ol>

<!-- Список визначень -->
<dl>
  <dt>HTML</dt>
  <dd>Мова розмітки для створення веб-сторінок</dd>
  <dt>CSS</dt>
  <dd>Мова стилів для оформлення HTML</dd>
</dl>
<!-- Неправильно: li поза списком -->
<li>Елемент 1</li>
<li>Елемент 2</li>

<!-- Правильно: li всередині ul або ol -->
<ul>
  <li>Елемент 1</li>
  <li>Елемент 2</li>
</ul>

Посилання та зображення

ТегАтрибутиОпис
<a>href, target, relГіперпосилання
<img>src, alt, width, heightЗображення
<figure>Контейнер для медіа + підпис
<figcaption>Підпис до figure
<picture>Адаптивне зображення
<video>src, controls, autoplayВідео
<audio>src, controlsАудіо
<!-- Правильно: alt завжди вказаний -->
<img src="photo.jpg" alt="Робочий стіл з ноутбуком" width="800" height="600">

<!-- Неправильно: без alt -->
<img src="photo.jpg">
<!-- Правильно: зовнішнє посилання з rel -->
<a href="https://google.com" target="_blank" rel="noopener noreferrer">
  Google
</a>

<!-- Правильно: figure з підписом -->
<figure>
  <img src="diagram.png" alt="Діаграма архітектури">
  <figcaption>Рис. 1 — Архітектура додатку</figcaption>
</figure>

Детальніше — в уроці про посилання та зображення.


Таблиці

ТегПризначення
<table>Контейнер таблиці
<thead>Заголовок таблиці
<tbody>Тіло таблиці
<tfoot>Підсумок таблиці
<tr>Рядок
<th>Комірка заголовка
<td>Комірка даних
<caption>Підпис таблиці
<!-- Правильно: повна структура -->
<table>
  <caption>Оцінки студентів</caption>
  <thead>
    <tr>
      <th>Ім'я</th>
      <th>Оцінка</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Олена</td>
      <td>95</td>
    </tr>
  </tbody>
</table>

<!-- colspan — об'єднання колонок -->
<tr>
  <th colspan="2">Ім'я та прізвище</th>
</tr>

<!-- rowspan — об'єднання рядків -->
<tr>
  <td rowspan="2">Програмування</td>
  <td>JavaScript</td>
</tr>
<tr>
  <td>TypeScript</td>
</tr>
<!-- Неправильно: таблиця для розмітки сторінки -->
<table>
  <tr>
    <td>Меню</td>
    <td>Контент</td>
    <td>Сайдбар</td>
  </tr>
</table>
Увага

Не використовуй <table> для створення макету сторінки. Для цього є CSS Flexbox та Grid — дивись шпаргалку з CSS Flexbox та Grid.

Детальніше — в уроці про таблиці.


Форми

ТегПризначення
<form>Контейнер форми
<label>Підпис до поля введення
<input>Поле введення (багато типів)
<textarea>Багаторядкове текстове поле
<select> + <option>Випадаючий список
<button>Кнопка
<fieldset> + <legend>Група полів із заголовком
<!-- Правильно: label пов'язаний з input через for/id -->
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>

<!-- Також правильно: label обгортає input (не потрібен for/id) -->
<label>
  Email:
  <input type="email" name="email" required>
</label>

Корисні атрибути для <input>

АтрибутОписПриклад
requiredОбов'язкове поле<input required>
placeholderПідказка в порожньому полі<input placeholder="Ваш email">
disabledНеактивне поле<input disabled>
readonlyТільки для читання<input readonly value="locked">
patternРегулярний вираз валідації<input pattern="[0-9]{3}">
min / maxМежі для number/date<input type="number" min="1" max="10">
autocompleteАвтозаповнення браузером<input autocomplete="email">

Типи <input>

ТипЩо показуєПриклад
textТекстове поле<input type="text">
emailEmail з валідацією<input type="email">
passwordЗамасковане поле<input type="password">
numberЧисло (кнопки ±)<input type="number" min="1" max="100">
dateВибір дати<input type="date">
checkboxГалочка (кілька)<input type="checkbox">
radioПеремикач (одне з)<input type="radio" name="color">
fileЗавантаження файлу<input type="file" accept=".jpg,.png">
rangeПовзунок<input type="range" min="0" max="100">
colorПалітра кольорів<input type="color">
searchПоле пошуку<input type="search">
telТелефон<input type="tel">
urlURL-адреса<input type="url">
hiddenПриховане поле<input type="hidden" value="token">

Детальніше — в уроці про форми.


Мета-теги (<head>)

<head>
  <!-- Обов'язкові -->
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Назва сторінки</title>

  <!-- SEO -->
  <meta name="description" content="Опис сторінки для Google">

  <!-- Open Graph (соцмережі) -->
  <meta property="og:title" content="Назва">
  <meta property="og:description" content="Опис">
  <meta property="og:image" content="https://site.com/image.jpg">

  <!-- Стилі та скрипти -->
  <link rel="stylesheet" href="style.css">
  <link rel="icon" href="favicon.ico">
  <script src="app.js" defer></script>
</head>
Атрибут scriptОпис
без атрибутівБлокує рендеринг сторінки
deferЗавантажує паралельно, виконує після HTML
asyncЗавантажує та виконує паралельно
<!-- Правильно: defer для зовнішніх скриптів -->
<script src="app.js" defer></script>

<!-- Неправильно: скрипт у head без defer блокує рендеринг -->
<script src="heavy-app.js"></script>

Глобальні атрибути

Ці атрибути можна використовувати на будь-якому HTML-елементі:

АтрибутОписПриклад
idУнікальний ідентифікатор<div id="app">
classCSS-клас(и)<p class="text-bold">
styleInline-стилі<span style="color: red">
data-*Кастомні дані для JS<button data-id="42">
titleПідказка при наведенні<abbr title="HTML">HTML</abbr>
hiddenПриховує елемент<div hidden>
tabindexПорядок Tab-навігації<div tabindex="0">
langМова контенту<p lang="en">Hello</p>
aria-labelПідпис для скрінрідерів<button aria-label="Закрити">X</button>

HTML5 інтерактивні елементи

<!-- Розгортаний блок (без JS!) -->
<details>
  <summary>Показати відповідь</summary>
  <p>Ось відповідь на питання.</p>
</details>

<!-- Прогрес-бар -->
<progress value="70" max="100">70%</progress>

<!-- Машинозчитувана дата -->
<time datetime="2026-02-15">15 лютого 2026</time>
Інфо
  • MDN HTML Reference — повний довідник усіх HTML елементів
  • HTML Validator — перевірка коректності HTML
  • Can I Use — підтримка HTML/CSS фіч у браузерах
  • HTML Best Practices — правила написання якісного HTML