🎨 Що таке CSS і навіщо він потрібен
Подивіться на цей код — це проста HTML-сторінка про учня 11 класу:
<h1>Петренко Олег</h1>
<p>Я навчаюсь у 11 класі. Цікавлюсь веб-розробкою.</p>
<ul>
<li>Програмування</li>
<li>Малювання</li>
<li>Спорт</li>
</ul>
Код правильний. Теги розставлені як треба. Відкриваємо в браузері — і бачимо звичайний чорно-білий текст, схожий на звичайний документ із Word.
- Заголовок — чорний.
- Текст — чорний.
- Список — чорний.
- Ніякого кольору, ніякого виділення.

Це працює, але виглядає нудно. А тепер погляньте на ту саму сторінку, але зі стилями:

Різниця очевидна. І найцікавіше: HTML-код майже не змінився. Ми просто додали трохи CSS.
🎨 Що таке CSS
CSS (від англ. Cascading Style Sheets — «каскадні таблиці стилів») — це окрема мова, яка відповідає за зовнішній вигляд елементів HTML.
Найпростіша аналогія:
- HTML — це скелет сторінки. Він визначає, що є на сторінці: заголовок, абзац, список, картинка, посилання.
- CSS — це одяг, зачіска й макіяж. Він визначає, як це виглядає: якого кольору, якого розміру, де розташовано.
Один і той самий скелет можна одягнути по-різному. Один і той самий HTML можна оформити десятками різних способів — і кожен виглядатиме по-своєму.

💡 Навіщо розділяти HTML і CSS
Уявіть, що ви пишете книгу. Можна було б одним і тим самим олівцем писати і текст, і малювати обкладинку, і оформлювати заголовки. Але так ніхто не робить.
У справжньому видавництві:
- Автор пише текст — це зміст книги.
- Дизайнер оформлює обкладинку, вибирає шрифт, кольори — це зовнішній вигляд.
У вебі так само:
- HTML — це «автор», який пише зміст.
- CSS — це «дизайнер», який оформлює вигляд.
📌 Навіщо це потрібно:
- Легко змінювати. Захотіли інший колір — змінюємо в одному місці, і оновлюється вся сторінка (або навіть увесь сайт).
- Чистий код. HTML залишається простим — тільки структура, без кольорів і розмірів.
- Однаковість. На всіх сторінках сайту — однаковий стиль заголовків, абзаців, кнопок.
📖 Формула CSS: як це виглядає в коді
Найпростіший приклад. Хочемо, щоб заголовок <h1> став темно-синім:
<h1 style="color: navy;">Петренко Олег</h1>
Що змінилося? У тегу <h1> з’явився атрибут style. Усередині нього — правило CSS:
color: navy;
Розберімо його по частинах:
color— що ми хочемо змінити. Тут — колір тексту.:— двокрапка. Розділяє «що змінюємо» і «на що змінюємо».navy— на що ми хочемо змінити. Темно-синій колір.;— крапка з комою. Означає «правило закінчилося».
📌 Формула правила:
ЩО змінити : НА ЩО змінити ;
Це найважливіша формула в усьому CSS. Запам’ятайте її — на ній тримається вся мова.
🔧 Додамо другу властивість
Хочемо, щоб заголовок був не лише синім, а й більшим:
<h1 style="color: navy; font-size: 40px;">Петренко Олег</h1>
Тепер заголовок — темно-синій і великий (40 пікселів).
📌 Кожне нове оголошення пишеться після ; у тому самому атрибуті style.
📖 Як називаються частини CSS
Ми вже побачили формулу властивість: значення;. Але в CSS усе має чіткі назви — і їх треба знати, щоб розуміти одне одного.
Розберімо на прикладі повного правила (таке ми будемо писати в <style>):
h1 {
color: navy;
font-size: 40px;
}
Ось як називаються всі частини:
h1 { color: navy; font-size: 40px; }
│ │ │ │ │ │
│ │ │ │ │ └── значення
│ │ │ │ └── властивість
│ │ │ └── (крапка з комою — кінець оголошення)
│ │ └── ОГОЛОШЕННЯ
│ └── блок оголошень
└── селектор
│ │
└──── усе разом = ПРАВИЛО CSS ───────────────┘
Розберімо кожен термін:
📘 Правило CSS — це вся конструкція разом: селектор + фігурні дужки + усі оголошення всередині.
h1 { color: navy; font-size: 40px; }
📘 Селектор — це те, до чого застосовується правило. Вказує, кого саме змінюємо.
- У прикладі селектор —
h1. Це означає: «усі заголовки<h1>на сторінці».
📘 Блок оголошень — це все, що стоїть усередині фігурних дужок { ... }.
- Тут —
color: navy; font-size: 40px;
📘 Оголошення — це одна пара властивість: значення;.
- У прикладі їх два:
color: navy;іfont-size: 40px;
📘 Властивість — це те, що саме ми змінюємо.
- Тут —
color(колір) іfont-size(розмір шрифту).
📘 Значення — це те, на що ми змінюємо.
- Тут —
navy(темно-синій) і40px(40 пікселів).
⚠️ Важливо: правило ≠ оголошення
Це той момент, який часто плутають.
- Правило CSS — це все разом: селектор + дужки + оголошення.
- Оголошення — це лише одна пара
властивість: значення;. - В inline ми пишемо тільки оголошення — бо селектор уже відомий (це сам тег), а фігурних дужок немає.
Тобто:
<h1 style="color: navy;">...</h1>
Тут не «правило», а одне оголошення color: navy; усередині атрибута style.
А ось це — повне правило:
h1 { color: navy; }
🔧 Простий спосіб запам’ятати
Задайте собі три питання, дивлячись на будь-який CSS-код:
- Хто? → це селектор (
h1) - Що з ним робимо? → це властивість (
color) і значення (navy) — разом вони оголошення - Де ці дії записані? → у блоці оголошень між
{ }
А все разом — це правило CSS.
❓ Поміркуйте:
- Що таке селектор? Що він показує?
- Чим оголошення відрізняється від правила?
- Скільки оголошень може бути в одному правилі?
- У рядку
<p style="color: red;">— це правило чи оголошення?
⚠️ Що не так із таким способом
Такий спосіб (коли стилі пишуться прямо в тегу) називається вбудованим (або inline).
Уявіть, що таких заголовків на сторінці 10. Треба буде в кожному писати style="color: navy; font-size: 40px;". А якщо 100?
- Легко десь забути або зробити помилку.
- Якщо треба змінити колір — доведеться редагувати усі заголовки.
- Код стає довгим і незручним для читання.
Саме тому існує кращий спосіб — писати CSS-правила окремо від тегів. Про це — у наступному блоці.
❓ Поміркуйте:
- Чому на сайтах розділяють HTML і CSS?
- Що станеться, якщо у великому проєкті писати стилі прямо в тегах?
- Чи можете ви назвати сайт, де HTML-код і CSS-код — це різні файли?
📚 Три способи підключення CSS
У попередньому блоці ми побачили найпростіший спосіб: писати стилі прямо в тегу — <h1 style="color: navy;">. Це працює, але має проблему: якщо елементів багато, код стає громіздким.
Насправді в CSS є три способи підключення стилів до HTML. Розберімо кожен і побачимо, коли який використовувати.
⚠️ Важливе уточнення про синтаксис
Перш ніж рухатися далі — запам’ятаймо одну важливу річ.
У трьох способах синтаксис запису правил трохи різний.
- В inline (у тегу) — синтаксис скорочений: ми пишемо тільки пари
властивість: значення;і не пишемо ні селектора, ні фігурних дужок. - В internal і external — синтаксис повний і однаковий:
селектор { властивість: значення; }.
📌 Головне: у способах internal і external синтаксис ідентичний — відрізняється лише місце, де ми пишемо ці правила (у <style> чи в окремому файлі).
🥇 Спосіб 1. Вбудований (inline)
Як виглядає: стилі пишуться прямо в тегу через атрибут style.
<h1 style="color: navy; font-size: 40px;">Петренко Олег</h1>
Розберімо уважно, що тут написано:
- Ми не пишемо селектор (
h1) — бо селектор «вбудований» у сам тег. Ми вже знаходимось у<h1>, отже браузер розуміє, до чого застосовувати. - Ми не пишемо фігурних дужок — бо тут вони не потрібні.
- Пишемо тільки оголошення — пари
властивість: значення;, розділені крапкою з комою.
📌 Особливість: працює лише для одного конкретного елемента.
Недоліки:
- Якщо таких заголовків 10 — треба 10 разів писати
style="..."; - Важко змінювати;
- HTML «змішується» з CSS.
🥈 Спосіб 2. Внутрішній (internal)
Як виглядає: CSS-правила пишуться окремо від тегів, але в тому самому HTML-файлі — у розділі <head>, усередині тега <style>.
<!DOCTYPE html>
<html lang="uk">
<head>
<meta charset="UTF-8">
<title>Про мене</title>
<style>
h1 {
color: navy;
font-size: 40px;
}
p {
font-size: 18px;
}
</style>
</head>
<body>
<h1>Петренко Олег</h1>
<p>Я навчаюсь у 11 класі.</p>
</body>
</html>
Що тут:
- У
<head>з’явився тег<style>...</style>— це контейнер для CSS-правил. - Усередині
<style>ми пишемо повні правила:селектор { властивість: значення; }. - У
<body>теги залишаються простими — безstyle="...".
📌 Формат правил тут такий самий, як і в external. Відрізняється лише місце.
Що це дає:
- Одне правило діє для всіх
<h1>на сторінці; - Якщо додати ще один
<h1>— він теж стане синім автоматично; - Усі абзаци
<p>на сторінці одразу мають розмір 18px.

📌 Особливість: працює для всієї сторінки.
🥉 Спосіб 3. Зовнішній (external)
Як виглядає: CSS-правила виносяться в окремий файл із розширенням .css, який підключається до HTML через тег <link>.
Файл style.css:
h1 {
color: navy;
font-size: 40px;
}
p {
font-size: 18px;
}
Файл index.html:
<!DOCTYPE html>
<html lang="uk">
<head>
<meta charset="UTF-8">
<title>Про мене</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Петренко Олег</h1>
<p>Я навчаюсь у 11 класі.</p>
</body>
</html>
Що тут:
- CSS-правила вийшли з HTML-файлу і переїхали в окремий файл
style.css. - Формат запису правил — такий самий, як в internal (селектор + фігурні дужки + оголошення).
- Відрізняється тільки місце — не в
<style>, а в окремому файлі.
Розберімо тег <link>:
<link>— підключає зовнішній файл;rel="stylesheet"— каже браузеру: «це файл зі стилями»;href="style.css"— шлях до файлу.
📌 Особливість: один файл .css можна підключити до багатьох HTML-сторінок — і стилі діятимуть усюди.
📊 Порівняння трьох способів
| Спосіб | Де пишемо | Синтаксис правил | Для чого |
|---|---|---|---|
| Inline | У тегу через style="..." | Скорочений: власт: знач; | Один елемент |
| Internal | У <style> в <head> | Повний: сел { власт: знач; } | Одна сторінка |
| External | В окремому файлі .css | Повний: сел { власт: знач; } | Весь сайт |
📌 Головне: в internal і external синтаксис однаковий. Різниця лише в тому, де ми пишемо правила.
🔄 Один і той самий результат — три способи
Хочемо, щоб усі заголовки <h1> були темно-синіми.
Спосіб 1 (inline):
<h1 style="color: navy;">Заголовок 1</h1>
<h1 style="color: navy;">Заголовок 2</h1>
<h1 style="color: navy;">Заголовок 3</h1>
Три заголовки — три рази пишемо style="color: navy;". Стомливо.
Спосіб 2 (internal):
<head>
<style>
h1 { color: navy; }
</style>
</head>
<body>
<h1>Заголовок 1</h1>
<h1>Заголовок 2</h1>
<h1>Заголовок 3</h1>
</body>
Правило пишемо один раз — і воно діє для всіх трьох заголовків. Якщо додамо четвертий — він теж стане синім автоматично.
Спосіб 3 (external):
Те саме, але правило живе в окремому файлі. І якщо в нас не одна сторінка, а сто — на всіх ста сторінках усі <h1> будуть синіми, бо всі підключають один і той самий style.css.
📌 Який спосіб обираємо ми
У цьому курсі ми користуємося способом №2 — internal (через <style> у <head>).
Чому:
- Простий — усе в одному файлі, легко бачити зв’язок між HTML і CSS;
- Правильний — CSS відокремлений від HTML-тегів (на відміну від inline);
- Зручний — одне правило діє для всіх елементів сторінки.
Спосіб №3 (external) — це те, як працюють усі справжні сайти. Його детально розберемо у наступному уроці.
🔧 Що запам’ятати
📌 Де живе CSS у трьох способах:
- Inline — всередині тега, прямо в атрибуті
style. - Internal — на сторінці, у блоці
<style>всередині<head>. - External — винесено в окремий файл
.css, який підключається до HTML через тег<link>.
📌 Синтаксис правил:
- У inline — скорочений (без селектора, без фігурних дужок): тільки оголошення
властивість: значення;. - У internal і external — повний:
селектор { властивість: значення; }. - В internal і external синтаксис однаковий — різниця лише в місці, де ці правила записані.
📌 Коли що використовувати:
- Inline — для одного конкретного елемента (рідко).
- Internal — для однієї сторінки (наш вибір у цьому курсі).
- External — для всього сайту (справжні проєкти).
❓ Поміркуйте:
- Чим відрізняється синтаксис inline від internal?
- Чому в internal і external синтаксис однаковий, а в inline — інший?
- Якщо уявити сайт із 50 сторінок — який спосіб найзручніший? Чому?
✍️ Синтаксис CSS: як правильно писати код
🤔 Браузеру все одно, як ти пишеш
Ось два CSS-правила. Подивіться уважно — чи вони однакові?
Варіант 1:
h1 { color: navy; font-size: 40px; }
Варіант 2:
h1 {
color : navy ;
font-size : 40px ;
}
Результат у браузері — однаковий. Заголовок <h1> стане темно-синім і великим. Різниці немає.
Чому? Бо браузер не читає код як людина. Йому байдуже:
- скільки пробілів між словами;
- скільки переносів рядків;
- чи є відступи;
- чи все в одному рядку.
Усе це для браузера — просто роздільники. Він орієнтується тільки на символи:
{і}— фігурні дужки;:— двокрапка;;— крапка з комою;- назви селекторів, властивостей і значень.
📌 Головне: писати можна як завгодно — але не можна забувати про дужки, двокрапки й крапки з комою. Саме за ними браузер розуміє, де що.
⚠️ Але є проблема: код читають люди
Якщо браузеру все одно — може, писати все в один рядок? Ні.
Бо код пишеться один раз, а читається багато разів:
- Тобою — коли через тиждень повертаєшся до свого проєкту;
- Твоїм колегою — коли він допомагає тобі з помилкою;
- Тобою ж — коли через місяць треба додати нову властивість.
І якщо код виглядає так:
h1 { color: navy; font-size: 40px; text-align: center; }
p { font-size: 18px; color: gray; }
ul { list-style: none; }
— знайти в ньому потрібну властивість складно. А якщо правил буде 20? А якщо 50?
🔄 Порівняння: поганий і хороший стиль
Подивіться на два варіанти одного й того самого коду.
❌ Погано — усе в один рядок:
h1 { color: navy; font-size: 40px; text-align: center; }
p { font-size: 18px; color: gray; }
✅ Добре — з переносами й відступами:
h1 {
color: navy;
font-size: 40px;
text-align: center;
}
p {
font-size: 18px;
color: gray;
}
Що змінилося:
- Кожне оголошення — на своєму рядку;
- Усередині
{ }— відступ; - Між правилами — порожній рядок.
Результат у браузері — однаковий. Але другий варіант читається набагато легше.
🎯 Три правила оформлення CSS-коду
Формалізуємо «хороший стиль» у три конкретні правила.
Правило 1. Кожне оголошення — на новому рядку.
Не так:
h1 { color: navy; font-size: 40px; }
А так:
h1 {
color: navy;
font-size: 40px;
}
Правило 2. Усередині блоку оголошень — відступ.
- 2 або 4 пробіли — обидва варіанти норма.
- Швидко зробити відступ — клавіша Tab на клавіатурі.
- Відступ показує, що ці оголошення належать до одного селектора.
Правило 3. Між правилами — порожній рядок.
Це допомагає оку відділити одне правило від іншого. Особливо коли правил багато.
💡 Точка з комою: маленька, але важлива
Ось невелика, але дуже практична деталь.
В останньому оголошенні в блоці точку з комою можна не ставити:
h1 {
color: navy;
font-size: 40px
}
Код працюватиме. Але краще ставити завжди. Чому?
Уявіть: через місяць ви вирішили додати ще одне оголошення знизу. Пишете його — і забуваєте поставити ; після попереднього. Код ламається.
📌 Порада: ставте ; після кожного оголошення — навіть після останнього. Це вбереже від найдрібніших, але найчастіших помилок.
✅ Міні-чек-ліст: що не можна забувати
Ось символи, на які браузер орієнтується найбільше. Якщо забути хоч один із них — правило або не працює, або «з’їдає» наступне.
{і}— відкриваюча й закриваюча фігурна дужка (без них правило не працює);:— двокрапка між властивістю й значенням;;— крапка з комою після кожного оголошення.
📌 І це ще один аргумент писати акуратно: у добре оформленому коді помилку знайти набагато легше, ніж у «злиплому» — де все в одному рядку.
📋 Правила CSS
1️⃣ Кожне оголошення — на новому рядку
color: navy;
font-size: 40px;
2️⃣ Відступ усередині { }
- Tab або 2-4 пробіли
- Показує, що оголошення належать до одного селектора
3️⃣ Порожній рядок між правилами
Допомагає оку відділити одне правило від іншого.
4️⃣ ; після кожного оголошення
- Навіть після останнього
- Захищає від помилок у майбутньому
5️⃣ Пробіл між селектором і {
h1 {
Не h1{, а h1 {
6️⃣ Пробіл після : в оголошенні
color: navy;
Не color:navy;, а color: navy;
🔮 Що буде далі
У наступному уроці ми розберемо:
- Селектори за тегом, за класом і за id;
- Коментарі
/* ... */— щоб залишати пояснення в коді; - І тоді ми зможемо стилізувати не всі елементи одразу, а тільки конкретні.
А поки — ми навчилися писати CSS правильно й акуратно. Це важливіше, ніж здається.
❓ Поміркуйте:
- Чому браузеру байдуже, як оформлений код?
- А чому нам — ні?
- Що станеться, якщо забути
;після оголошення?- Скільки пробілів треба робити в відступі? Це принципово?
✅ Підсумок
Ми розібрали, що таке CSS і як він працює. Ось головне, що варто запам’ятати.
1. CSS — це мова для оформлення.
Він відповідає за зовнішній вигляд HTML-сторінки: колір, розмір, шрифт, відступи, розташування. HTML — це структура, CSS — це вигляд.
2. CSS пише правила.
Формула правила: селектор { властивість: значення; }. Усередині — оголошення — пари властивість: значення;. І селектор, і оголошення, і весь блок разом мають свої назви — ми їх розібрали.
3. Є три способи підключення CSS.
- Inline — прямо в тегу через атрибут
style. Синтаксис скорочений. - Internal — у тегу
<style>в<head>сторінки. Синтаксис повний. - External — в окремому файлі
.css, підключається через<link>. Синтаксис повний і однаковий із internal.
4. Ми використовуємо internal.
Він простий, правильний і зручний. External детально розберемо в наступних уроках.
5. Браузеру байдуже, як оформлений код — а от людям ні.
Браузер орієнтується тільки на символи { }, : і ; та назви селекторів і властивостей — пробіли й переноси він ігнорує. Але ми пишемо код так, щоб його було легко читати: кожне оголошення на новому рядку, відступ усередині { }, порожній рядок між правилами. І ; — після кожного оголошення, навіть після останнього.
❓ Перевірте себе
Спробуйте відповісти на кожне запитання самостійно — а потім натисніть, щоб перевірити себе.
1. Що таке CSS і навіщо він потрібен?
CSS — це окрема мова, яка відповідає за зовнішній вигляд HTML-сторінки. Він керує кольором, розміром, шрифтом, відступами й розташуванням елементів. HTML — це структура, а CSS — це оформлення.
2. Що таке селектор? Що він показує?
Селектор — це частина правила CSS, яка вказує, до якого саме елемента застосовується правило. Він стоїть перед фігурними дужками. Наприклад, у правилі h1 { color: navy; } селектор — це h1. Він означає: «усі заголовки першого рівня на сторінці».
3. Чим повне правило відрізняється від оголошення?
Правило — це вся конструкція разом: селектор + фігурні дужки + усі оголошення всередині. Наприклад: h1 { color: navy; font-size: 40px; }.
Оголошення — це одна пара властивість: значення;. У правилі вище їх два: color: navy; і font-size: 40px;.
Крім того, в inline ми пишемо тільки оголошення — бо селектор уже відомий (це сам тег), а фігурних дужок немає.
4. Назвіть три способи підключення CSS і коротко поясніть різницю між ними.
Inline — стилі пишуться прямо в тегу через атрибут style. Працює лише для одного конкретного елемента. Синтаксис скорочений.
Internal — стилі пишуться в тегу <style> усередині <head>. Працюють для всієї сторінки. Синтаксис повний.
External — стилі виносяться в окремий файл .css, який підключається через <link>. Працює для всього сайту. Синтаксис повний і однаковий із internal — різниця лише в місці, де записано правила.
5. Чи впливає оформлення коду (пробіли, переноси) на роботу CSS у браузері?
Ні, не впливає. Браузер ігнорує пробіли, переноси рядків і відступи. Він орієнтується лише на символи: фігурні дужки { }, двокрапку : і крапку з комою ;, а також на назви селекторів і властивостей. Тому два однакових правила, записані по-різному, дадуть однаковий результат.
6. Що треба робити, щоб код CSS було легко читати?
Треба дотримуватися кількох простих правил оформлення:
- кожне оголошення — на новому рядку;
- усередині фігурних дужок
{ }— відступ (Tab або 2-4 пробіли); - між правилами — порожній рядок;
;— після кожного оголошення, навіть після останнього.
Це не впливає на роботу браузера, але дуже допомагає самому розробнику (і його колегам) читати код і знаходити помилки.