Professional Documents
Culture Documents
ЛР№7
ЛР№7
Основи CSS
Теоретичні відомості
Каскадні таблиці стилів (CSS) — це мова таблиць стилів, яка використовується для опису
подання документа, написаного в HTML або XML (включаючи такі діалекти XML, як SVG,
MathML або XHTML). CSS описує, як елементи мають відображатися на екрані, на папері, у
мовленні чи на інших носіях.
CSS є однією з основних мов відкритого Інтернету та стандартизована для веб-браузерів
відповідно до специфікацій W3C. Раніше розробка різних частин специфікації CSS
виконувалася синхронно, що дозволяло версії останніх рекомендацій. Можливо, ви чули про
CSS1, CSS2.1 або навіть CSS3. Ніколи не буде CSS3 або CSS4; замість цього все тепер CSS без
номера версії.
Після CSS 2.1 обсяг специфікації значно розширився, а прогрес у різних модулях CSS
почав настільки відрізнятися, що стало більш ефективним розробляти та випускати рекомендації
окремо для кожного модуля. Замість створення версій специфікації CSS, W3C тепер періодично
робить знімок останнього стабільного стану специфікації CSS і прогресу окремих модулів.
Модулі CSS тепер мають номери версій або рівні, наприклад CSS Color Module Level 5.
CSS (каскадні таблиці стилів) — це код, який стилізує веб-вміст. За допомогою CSS ви
зможете розв’язати наступні види задач: як зробити текст червоним? Як зробити так, щоб вміст
відображався в певному місці макета (веб-сторінки)? Як я можу прикрасити свою веб-сторінку
фоновими зображеннями та кольорами?
Вся структура називається набором правил. (Термін набір правил часто називають просто
правилом.) Зверніть увагу на назви окремих частин:
– Селектор (Selector). Це назва елемента HTML на початку набору правил. Він визначає
елемент (елементи), до якого потрібно стилізувати (у цьому прикладі елементи <p>). Щоб
стилізувати інший елемент, змініть селектор.
– Декларація (Declaration). Це єдине правило, як color: red;. Він визначає, до яких
властивостей елемента потрібно додати стиль.
– Властивості (Properties). Це способи, за допомогою яких можна стилізувати елемент
HTML. (У цьому прикладі color є властивістю елементів <p>.) У CSS ви вибираєте, на які
властивості ви хочете вплинути в правилі.
– Значення властивості (Property value). Праворуч від властивості – після двокрапки –
вказано значення властивості. Це вибирає один із багатьох можливих виглядів для даної
властивості. (Наприклад, крім червоного існує багато значень кольорів.)
Зверніть увагу на інші важливі частини синтаксису:
– Окрім селектора, кожен набір правил має бути укладено у фігурні дужки. ({})
– У кожній декларації ви повинні використовувати двокрапку (:), щоб відокремити
властивість від її значення або значень.
– У кожному наборі правил ви повинні використовувати крапку з комою (;), щоб
відокремити кожне оголошення від наступного.
Ви також можете вказувати декілька елементів для встановлення одного спільного стилю.
Для цього розділіть селектори через кому. Наприклад:
p,
li,
h1 {
color: red;
}
Типи селекторів
Існує багато різних типів селекторів. У наведених вище прикладах використовуються
селектори елементів, які вибирають усі елементи заданого типу. Але ми також можемо зробити
більш конкретний вибір. Ось деякі з найпоширеніших типів селекторів:
Для того, щоб обрати всі абзаци, треба скористатися селектором p. Щоб зробити всі абзаци
зеленими, треба використати:
p{
color: green;
}
Додавання класу
Поки що була продемонстрована стилізація елементів на основі їхніх імен. Це працює,
доки ви хочете, щоб усі елементи цього типу у вашому документі виглядали однаково. Щоб
вибрати підмножину елементів, не змінюючи інші, ви можете додати клас до свого елемента
html і націлити цей клас у свій CSS. Тобто використати селектор класу.
Розглянемо наступний приклад:
На цьому прикладі видно, що абзаци з однаковим тегом p виглядають по-різному. Це
відбувається тому, що у них різні класи. У CSS це виглядає наступним чином:
Тобто, для додавання нового правила оформлення з використанням селектора класу вам
потрібно:
1. Додати атрибут класу у вашому html коді.
2. У CSS обрати бажаний клас та встановити властивості. Назва класу повинна
розпочинатися з крапки. Це гарно видно на прикладі.
3. Згодом ви можете застосувати цей клас (з CSS) до будь-якого елементу вашої сторінки,
якщо ви хочете, щоб він мав такий самий вигляд.
Іноді ви побачите правила з селектором, який містить список селектора елемента html
разом із класом:
li.special {
color: orange;
font-weight: bold;
}
Цей синтаксис означає «цільовий будь-який елемент li, який має клас special». Якщо ви це
зробите, ви більше не зможете застосувати клас до <span> або іншого елемента, додавши до
нього клас; вам доведеться додати цей елемент до списку селекторів:
li.special,
span.special {
color: orange;
font-weight: bold;
}
Як ви можете собі уявити, деякі класи можуть бути застосовані до багатьох елементів, і вам
не захочеться продовжувати редагувати свій CSS щоразу, коли щось нове потребує цього стилю.
Тому іноді краще обійти елемент і звернутися до класу, якщо ви не знаєте, що хочете створити
якісь спеціальні правила лише для одного елемента, і, можливо, хочете переконатися, що вони
не застосовуються до інших речей.
<ul>
<li>Item <span>one</span></li>
<li>Item two</li>
<li>Item <em>three</em></li>
</ul>
У цьому документі є два елементи <em> — один у абзаці, а інший — у списку. Щоб
вибрати лише <em>, який вкладено в елемент <li>, можна використати селектор, який
називається комбінатором-нащадком, що має форму пробілу між двома іншими селекторами.
li em {
color: rebeccapurple;
}
Цей селектор вибере будь-який елемент <em>, який знаходиться всередині (нащадка) <li>.
Отже, у цьому прикладі документа треба виявити, що <em> у третьому елементі списку тепер
фіолетовий, але той, що знаходиться всередині абзацу, залишився незмінним.
Іншим цікавим випадком є, наприклад, виділення абзацу, який йде безпосередньо після
заголовку першого рівня. Для цього помістіть + (суміжний однорідний комбінатор) між
селекторами. Наприклад:
h1 + p {
font-size: 200%;
}
a:visited {
color: green;
}
Ви можете змінити вигляд посилання, коли користувач наводить на нього курсор,
наприклад, видаливши підкреслення, що досягається наступним правилом:
a:hover {
text-decoration: none;
}
/* selects any <p> that comes directly after a <ul>, which comes directly after an <h1> */
h1 + ul + p {
}