Кожна веб-сторінка в мережі Інтернет має свій особливий вигляд - стиль, дизайн. Цей особливий вигляд створюється завдяки CSS (читається "сі-ес-ес" або "ка-ес-ес").
CSS (Cascading Style Sheets) - це набір команд, які вказують, як мають виглядати абзаци, окремі слова і літери, малюнки, меню, фон та ін. Ці команди записуються за допомогою спеціальної мови розмітки і зберігаються у вигляді каскадних таблиць стилів. Отже, CSS (Cascading Style Sheets) - це каскадні таблиці стилів або CSS-стилі.
CSS-стиль може вказуватись трьома способами: внутрішні стилі, вбудовані стилі, зовнішня таблиця стилів.
Внутрішні стилі
Внутрішні стилі вказуються всередині html-файлу у розділі <head></head>. При цьому використовують спеціальний парний тег <style></style>.
Приклад:
<style>
h1,
h2 {
color: red;
font-family: "Times New Roman", Georgia, Serif;
line-height: 1.3em;
}
</style>
Вбудовані стилі
Вбудовані стилі вказуються в самому HTML-коді всередині того тегу, який описують. При цьому використовують атрибут style="властивості тега через ;"
Приклад:
<p style="font-weight: bold; color: red;">Виділяємо текст червоним кольором і напівжирними літерами.</p>
Зовнішня таблиця стилів
Зовнішня таблиця стилів - найпотужніший інструмент для CSS-стилю.
Зовнішня таблиця стилів - це спеціальний окремий файл, де описані всі теги і всі їхні властивості. Файл має тип (розширення) .css . Файлів може бути кілька - залежно від рішення автора сайту.
Щоб браузер зрозумів, де знаходиться файли з css-стилями, використовують непарний тег <link>, який записують у головній частині html-файлу між тегами <head></head>.
Атрибути тегу <link>:
rel="stylesheet" <!-- вказує, що ми зараз описуємо шлях до файлу зі стилями>
href="css/style.css" <!-- вказує шлях до файлу зі стилями (css/) і назву цього файлу (style.css)>
Приклад:
<head>
<link rel="stylesheet" href="/css/style.css">
</head>
Cелектори
Усі частини html-сторінки (заголовки, абзаци, малюнки та ін.) описуються у таблиці стилів. Тільки записуються вони інакше: не як теги ( між знаками < та >), а як селектори.
Селектор - частина html-сторінки, яка описується у таблиці стилів. Селектори містять правила, за якими броузер відображає форматування частин html-сторінки. Слово "форматування" у даному випадку означає "зовнішній вигляд, тобто колір, розмір, розташування тощо".
Як описується стиль для селектора?
Стиль селектора описується у блоці оголошень.
Блок оголошень - це команди форматування, які описують властивості селекторів (колір, розмір, фон, прозорість та ін.). Блок оголошень записується після назви селектора між фігурними дужками "{" та "}".
селектор {блок оголошень}
Властивість (наприклад, колір - "червоний", розмір літер "14px") записують так: спочатку назву властивості, потім пишуть двокрапку :, потім - значення властивості, в кінці - крапка з комою ;
селектор
{
властивість1:значення властивості1;
властивість2:значення властивості2; /*блок оголошень*/
властивість3:значення властивості3;
}
Наприклад:p {
color: red;
font-family:Arial;
line-height:140%;
}
Результат:
Абзац червоного кольору, накреслення Arial, міжрядковий інтервал 120%
Селектори CSS бувають таких видів:
1) селектори елементів - селектори, які описують зовнішній вигляд (форматування) УСІХ елементів html-сторінки ПЕВНОГО ТИПУ.
Cелектори елементів записуються як назва html-елемента без дужок "<" та ">".
Наприклад,
якщо написати у таблиці стилів код h1 {color:red; font-family:"Comic Sans MS";}
це означатиме, що усі заголовки першого рівня h1 будуть відображені червоним кольором і накресленням Comic Sans MS
<h1 class="main">Заголовок 1 зелений</h1>
h1.main {color:green;}
- це означає, що усі заголовки h1, для яких буде вказано class="main", будуть зеленого кольору.main {color:green;}
- це означає, що будь-які елементи html-сторінки, для яких вказано class="main", будуть зеленого кольоруВажливо!
Правила іменування класів:
а) імена класів повинні починатись з англійських букв
правильно: class="place"
не правильно: class="1place"
б) імена класів пишуться тільки англійськими літерами без "пробілів"
правильно: class="placeone"
не правильно: class="місце один"
в) якщо ім'я складне, то краще між частинами писати дефіс або підкреслення, а не великі літери
правильно: class="place-one" або class="place_one"
не правильно: class="placeOne"
г) автор сам вигадує імена, але краще, коли вони мають якесь зрозуміле значення - так легше розібратись у великому коді
правильно: class="main-menu"
не правильно: class="mm"
3) cелектори ідентифікаторів - селектори для ОДНОГО-ЄДИНОГО елемента html-сторінки, який більше ніде на сторінці не повторюється.
Іншими словами, автор сайту вирішує, що ОДНА частина веб-сторінки повинна мати якусь особливість. Тоді він її виділяє:
спочатку - створює ідентифікатор у html-коді, а саме
дописує для тега атрибут id з іменем ідентифікатора:
<p id="text">Текст</p>
потім - описує його в таблиці стилів css, а саме
пише назву класу зі знаком "слештег" попереду ("слештег" - "решітка" #):
#text
Наприклад,
автор планує, що один заголовок h1 повинен бути якогось особливого вигляду, а саме - мати синій колір.
Тоді
у html коді він пише:<h1 id="great">Заголовок 1 синій</h1>
у css-коді він пише:#great {color:blue;}
- це означає, що ОДИН-ЄДИНИЙ елемент html-сторінки, для якого вказано id="great", буде синього кольору
Результат:
Правила іменування ідентифікаторів такі ж, як для класів.
4) селектори-нащадки - селектори елементів html-сторінки, які у коді сторінки записані всередині іншого html-елемента (батьківського).
У css-коді робиться запис за таким правилом:
селектор батьківського елемента відділяється від селектора-нащадка за допомогою пробілу
Наприклад:
потрібно записати стиль для посилання, яке знаходиться всередині абзацу
варіанти css-коду
p a {color: green; text-decoration: none;} - означає: усі посилання, які знаходяться всередині абзацу, будуть зеленого кольору і без підкреслення
p.main a {color: green; text-decoration: none;} - означає: усі посилання, які знаходяться всередині абзацу з класом main, будуть зеленого кольору і без підкреслення
.main a {color: green; text-decoration: none;} - означає: усі посилання, які знаходяться всередині будь-яких елементів сторінки з класом main, будуть зеленого кольору і без підкреслення
p .main a {color: green; text-decoration: none;} - означає: усі посилання, які знаходяться всередині будь-яких елементів сторінки з класом main, які знаходяться всередині абзацу, будуть зеленого кольору і без підкреслення
Який з чотирьох варіантів обрати, вирішує автор. Його рішення залежить від того, як він збудував свою сторінку, враховуючи простоту і зрозумілість коду.
5) дочірні селектори - селектори елементів, які є ПЕРШИМИ потомками ("дочками") батьківського елементу.
У css-коді робиться запис за таким правилом:
селектор батьківського елемента відділяється від селектора-нащадка-дочки за допомогою знаку >
Наприклад:
потрібно записати стиль для дочірнього посилання, яке знаходиться всередині абзацу
css-код
p > a {color: green; text-decoration: none;} - означає: лише ті посилання, які є дочірніми для абзацу, будуть зеленого кольору і без підкреслення
html-код
<p>Який варіант обрати, вирішує <a href="#">автор.</a></p>
Важливо!
Запис спрацює лише тоді, коли у html-коді між батьківським і дочірнім елементом немає жодних інших тегів або дочірній елемент не входить у інший тег.
6) сестринські селектори - сусідні селектори одного рівня-нащадка
У css-коді робиться запис за такими правилами:
або
перший селектор-сусід відділяється від другого селектора-сусіда за допомогою знаку +
h1 + p {color:yellow;}
даний запис означає, що виділяють жовтим лише ті абзаци, які у html-коді йдуть першими за тегом h1
Наприклад, у html-коді
<h1>Який варіант обрати, вирішує </h1><p>автор</p><p>та його друзі</p>
перший абзац буде жовтим, а другий - ні.
або
перший селектор-сусід відділяється від другого селектора-сусіда за допомогою знаку ~
h2 ~ p{color:yellow;}
даний запис означає, що виділяють жовтим ті абзаци, які у html-коді є сестринськими до тегу h2
Наприклад, у html-коді
<h2>Який варіант обрати, вирішує </h2><p>автор</p><p>та його друзі</p>
обидва посилання будуть жовтими.
Який з варіантів обрати, вирішує автор. Його рішення залежить від того, як він збудував свою сторінку, враховуючи простоту і зрозумілість коду.