Таблиці в HTML використовуються для представлення табличних даних — інформації, організованої у рядки та стовпці. За допомогою таблиць зручно верстати макети сторінок, розміщуючи потрібним чином фрагменти тексту та зображень.
Таблиця складається зі рядків, рядки складаються з комірок. Комірки можуть містити текст і зображення. Для додавання таблиці на веб-сторінку використовується тег <table>. Цей елемент служить контейнером для елементів <tr>, які визначають рядки таблиці. Кожен рядок служить контейнером для елементів <th> або <td>, які визначають комірки. Вміст елемента <th>, на відміну від <td>, виводиться жирним шрифтом і вирівнюється по центру.
Всі властивості для таблиць вказуються у таблиці стилів.
Всередині комірок можуть знаходитися картинки. Для цього у контейнерах <td> або <th> вставляється тег <img>.
<table> — контейнер для всієї таблиці<tr> (Table Row) — визначає рядок таблиці<td> (Table Data) — визначає ячейку з даними<th> (Table Header) — визначає заголовкову ячейку (жирний текст, центрування)
<!DOCTYPE html>
<html lang="uk">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Історичні пам'ятки України</title>
<style>
body {
font-family: Arial, sans-serif;
line-height: 1.6;
max-width: 600px;
margin: 20px auto;
padding: 20px;
background-color: #f9f9f9;
}
h1 {
color: #0057b7;
text-align: center;
margin-bottom: 30px;
}
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
th, td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid #ddd;
}
th {
background-color: #ffd700;
color: #0057b7;
font-weight: bold;
}
tr:hover {
background-color: #f1f1f1;
}
.highlight {
font-weight: bold;
color: #0057b7;
}
</style>
</head>
<body>
<h1>Історичні пам'ятки України</h1>
<table>
<thead>
<tr>
<th>Період</th>
<th>Пам'ятка</th>
<th>Локація</th>
<th>Зображення</th>
</tr>
</thead>
<tbody>
<tr>
<td>Київська Русь</td>
<td>Софійський собор</td>
<td>Київ</td>
<td><img src="16/1/sofiya.jpg" /></td>
</tr>
<tr>
<td>Київська Русь</td>
<td>Києво-Печерська лавра</td>
<td>Київ</td>
<td><img src="16/1/lavra.jpg" /></td>
</tr>
<tr>
<td>Козацька доба</td>
<td>Хортицька Січ</td>
<td>Запоріжжя</td>
<td><img src="16/1/hortica.jpg" /></td>
</tr>
<tr>
<td>Середньовіччя</td>
<td>Луцький замок</td>
<td>Луцьк</td>
<td><img src="16/1/Lubart.jpg" /></td>
</tr>
<tr>
<td>Галицько-Волинська держава</td>
<td>Олеський замок</td>
<td>Львівська область</td>
<td><img src="16/1/Olessky.jpg" /></td>
</tr>
</tbody>
</table>
</body>
</html>
| Період | Пам'ятка | Локація | Зображення |
|---|---|---|---|
| Київська Русь | Софійський собор | Київ | ![]() |
| Київська Русь | Києво-Печерська лавра | Київ | ![]() |
| Козацька доба | Хортицька Січ | Запоріжжя | ![]() |
| Середньовіччя | Луцький замок | Луцьк | ![]() |
| Галицько-Волинська держава | Олеський замок | Львівська область | ![]() |
Для кращої організації великих таблиць використовуються додаткові елементи:
<thead> — група рядків заголовка<tbody> — група рядків з основними даними<tfoot> — група рядків підсумку (футер)<table>
<thead>
<tr>
<th>Продукт</th>
<th>Ціна</th>
</tr>
</thead>
<tbody>
<tr>
<td>Хліб</td>
<td>15 грн</td>
</tr>
<tr>
<td>Молоко</td>
<td>30 грн</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Разом:</td>
<td>45 грн</td>
</tr>
</tfoot>
</table>
| Продукт | Ціна |
|---|---|
| Хліб | 15 грн |
| Молоко | 30 грн |
| Разом: | 45 грн |
Щоб таблиця мала видимі границі, використовуємо CSS властивість border.
table, th, td {
border: 1px solid black;
}
Властивість border-collapse: collapse; об'єднує подвійні границі в одну лінію.
table {
border-collapse: collapse;
}
Без collapse:
| A | B |
|---|---|
| 1 | 2 |
З collapse:
| A | B |
|---|---|
| 1 | 2 |
table {
border: 3px solid #333; /* Товста зовнішня границя */
}
td {
border: 1px dotted #999; /* Пунктирні внутрішні границі */
}
↑ Догори
Використовуйте властивість background-color для зміни кольору фону.
thead th {
background-color: #4CAF50;
color: white;
}
tbody tr:nth-child(even) {
background-color: #f2f2f2; /* Парні рядки */
}
Результат:
| Назва | Значення |
|---|---|
| Рядок 1 | Дані 1 |
| Рядок 2 | Дані 2 |
| Рядок 3 | Дані 3 |
th {
color: #ffffff;
}
td {
color: #333333;
}
↑ Догори
Властивість text-align контролює горизонтальне розташування тексту.
th {
text-align: center; /* по центру */
}
td {
text-align: left; /* ліворуч */
}
.price {
text-align: right; /* праворуч */
}
Результат:
| Продукт (center) | Кількість (center) | Ціна (center) |
|---|---|---|
| Ноутбук | 1 | 25000 грн |
| Миша | 2 | 700 грн |
Властивість vertical-align керує вертикальним розташуванням вмісту.
td {
vertical-align: top; /* вгорі */
vertical-align: middle; /* по центру */
vertical-align: bottom; /* внизу */
}
↑ Догори
Використовуйте властивість width для встановлення ширини.
table {
width: 100%; /* На всю ширину контейнера */
width: 600px; /* Фіксована ширина */
}
Приклад (70% ширини):
| Колонка 1 | Колонка 2 |
|---|---|
| Дані | Дані |
tr {
height: 50px;
}
td {
padding: 15px; /* Внутрішні відступи */
}
↑ Догори
td:first-child {
width: 200px; /* Перший стовпець */
}
td:nth-child(2) {
width: 100px; /* Другий стовпець */
}
Властивість table-layout: fixed; розподіляє ширину стовпців рівномірно.
table {
table-layout: fixed;
width: 100%;
}
Порівняння:
Auto (за замовчуванням):
| Короткий | Дуже довгий текст у цій комірці |
Fixed:
| Короткий | Дуже довгий текст у цій комірці |
Властивість float дозволяє розмістити таблицю ліворуч або праворуч, дозволяючи тексту обтікати її.
table {
float: right;
margin: 0 0 10px 10px;
width: 300px;
}
| Пункт | Ціна |
|---|---|
| Товар 1 | 100 грн |
| Товар 2 | 200 грн |
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris. Таблиця розміщена праворуч від тексту. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.
table {
margin: 0 auto; /* Центрування */
}
↑ Догори
margin: 0 auto;float: right; або margin-left: auto;/* Центрування */
table {
margin-left: auto;
margin-right: auto;
}
/* Або коротше */
table {
margin: 0 auto;
}
Елемент <caption> додає підпис до таблиці. Розміщується одразу після <table>.
<table>
<caption>Розклад занять</caption>
<tr>
<th>День</th>
<th>Предмет</th>
</tr>
</table>
| Час | Предмет |
|---|---|
| 9:00 | Математика |
| 10:30 | Інформатика |
caption {
caption-side: top; /* вгорі (за замовчуванням) */
caption-side: bottom; /* внизу */
font-weight: bold;
font-size: 1.2em;
}
↑ Догори
Створіть таблицю з розкладом занять на тиждень:
<thead>, <tbody>Створіть таблицю особистих витрат:
<tfoot> для підсумкового рядка/* Відступи між границями */
table {
border-spacing: 10px; /* Працює з border-collapse: separate */
}
/* Ефект при наведенні */
tr:hover {
background-color: #f5f5f5;
cursor: pointer;
}
/* Стилізація окремих рядків */
tr:first-child { border-top: 3px solid #000; }
tr:last-child { border-bottom: 3px solid #000; }
/* Стилізація окремих колонок */
td:first-child { font-weight: bold; }
td:last-child { color: #007bff; }
↑ Догори
Оберіть правильні відповіді на кожне питання.
<tfoot>?1. b) <tr> — Table Row створює рядок
2. b) border-collapse: collapse; — об'єднує границі
3. b) Після <tbody> (або може бути перед ним, але після <thead>)
4. b) text-align — вирівнювання тексту по горизонталі
5. b) tr:nth-child(even) — вибирає парні рядки
6. b) <caption> — підпис таблиці
7. b) table-layout: fixed; — фіксована ширина колонок
8. c) margin: 0 auto; — центрування блокового елемента
© 2025 Методичний посібник з HTML та CSS таблиць