Інформатика 11 клас. Модуль: Веб-технології

🎨 Що таке CSS і навіщо він потрібен

Подивіться на цей код — це проста HTML-сторінка про учня 11 класу:

<h1>Петренко Олег</h1>
<p>Я навчаюсь у 11 класі. Цікавлюсь веб-розробкою.</p>
<ul>
  <li>Програмування</li>
  <li>Малювання</li>
  <li>Спорт</li>
</ul>

Код правильний. Теги розставлені як треба. Відкриваємо в браузері — і бачимо звичайний чорно-білий текст, схожий на звичайний документ із Word.

  • Заголовок — чорний.
  • Текст — чорний.
  • Список — чорний.
  • Ніякого кольору, ніякого виділення.
HTML-сторінка без CSS — просто чорний текст на білому фоні

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

Та сама сторінка, але зі стилями — синій заголовок, великий текст, список у рамці

Різниця очевидна. І найцікавіше: 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-код:

  1. Хто? → це селектор (h1)
  2. Що з ним робимо? → це властивість (color) і значення (navy) — разом вони оголошення
  3. Де ці дії записані? → у блоці оголошень між { }

А все разом — це правило 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>.

📌 Синтаксис правил:

  1. У inline — скорочений (без селектора, без фігурних дужок): тільки оголошення властивість: значення;.
  2. У internal і external — повний: селектор { властивість: значення; }.
  3. В 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 пробіли);
  • між правилами — порожній рядок;
  • ; — після кожного оголошення, навіть після останнього.

Це не впливає на роботу браузера, але дуже допомагає самому розробнику (і його колегам) читати код і знаходити помилки.