CSS

Матеріал з Вікіпідручника
Перейти до: навігація, пошук

Даний підручник спробує навчити вас використовувати каскадні таблиці стилів - важливий елемент веб-дизайну. Перед його прочитанням бажано мати певне уявлення про HTML.

Каскадні таблиці стилів (англ. Cascading Style Sheets) — спеціальна мова, що використовується для запису оформлення сторінок написаних мовами розмітки даних.

Зміст

Основні поняття [ред.]

Таблиці стилів дають змогу спростити процес створення сторінок і поліпшити їхній зовнішній вигляд. Концепція стилів подібна до ідеї стилів, яка реалізована в сучасних текстових редакторах - текст спочатку вводять, а потім форматують, користуючись стилями. Застосування стилів дає змогу вводити на сторінку потрібні тексти та інші елементи, не задумуючись над їхнім зовнішнім виглядом і розташуванням.

Таблиці стилів користувач зазвичай створює окремо від html-файлу. Під час створення html-файлу він концентрує увагу на змісті сторінки, а не на її зовнішньому вигляді, а під час створення таблиці стилів - навпаки. Отже, стилі дають змогу розмежувати етапи створення html-файлу й удосконалення зовнішнього вигляду сторінки.

Вважатимемо, що таблиця стилів уже створена. Тепер на потрібно забезпечити взаємодію таблиці з html-файлом. Розглянемо три способи такої взаємодії: зв'язування, імпортування, вбудовування.

Зв'язування [ред.]

Таблицю стилів створюють і зберігають в окремому файлі з розширенням css. Таку таблицю називають зовнішньою. Щоб зв'язати основний файл з таблицею стилів, у середині тега <head> застосовують одинарний тег <link> з інформацією про таблицю:

<head>
<link href ="адреса таблиці стилів" 
      type="text/css"
      rel="stylesheet"
      title="назва таблиці стилів">
</head>

Імпортування [ред.]

Це те ж саме, що і зв'язування, але взаємодію файлів забезпечують засобами тегу <style> і команди @import URL("адреса таблиці стилів")

Вбудовування [ред.]

Якщо таблицю створено лише для деякого конкретного html-файлу, то її розташовують у цьому файлі за допомогою контейнера <style>. Таку таблицю стилів називають внутрішньою або вбудованою.

Також стиль можна вбудувати прямо в html-тег, за допомогою атрибуту style, наприклад:

<span style="color: red">RED</span>

Це дасть нам блок з текстом червоного кольору: RED

Мова CSS [ред.]

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

Опис стилю - це послідовність пар

          властивість:значення

які записують через крапку з комою та охоплюють фігурними дужками. Отже загальний вигляд правила такий:

Список тегів  {властивість1:значення1;
              властивість2:значення2;
              властивістьN:значенняN}

Приклад правила для одного тега:

p{color:red}.

Браузер виводить на екрані тексти всіх абзаців червоним кольором.

Ось приклад складнішого правила для списку тегів:

h3,li{ 
        color:green; 
        font-family:pragmatica; 
        font-size:16pt; 
        text-align:left;
        border-style:ridge; 
        border-width:2mm
}

Браузер виведе всі заголовки третього рівня h3 і елементи списків li зеленим кольором, шрифтом Прагматика розміру 16 пунктів, вирівняє їх до лівого краю вікна й охопить рамкою товщиною 2 мм з видавленим контуром (ridge).

Властивості стилів та їх значення [ред.]

Імена властивостей складаются з одного чи декількох англійських слів, що записуются через риску. Властивість діє лише в межах тега, зазначеного у відовідному правилі.

Властивості стилів наведені у таблиці:

Властивість Значення Пояснення
Background-attachement fixed, scroll Тло фіксоване чи прокручуєтся
Background-color red, green, #343434 Колір тла
Background-image URL("Адреса графічного файлу для тла")
Background-repeat repeat, repeat-x, repeat-y, no-repeat Повторює зображення
Border-color red, green, #343434 Колір рамки
Border-style none, dotted, dashed, soild, double, groove, ridge, inset, outset Стиль рамки
Border-width 2mm,3mm Товщина рамки
Font-family Arial, serif Назва шрифта
Font-size normal, italic, oblique Розмір шрифта
Font-variant small-caps Вигляд курсивів
Font-weight normal,bold,bolder Жирність шрифта
Word-spacing 1mm,2mm Відстань між словами
Letter-spacing 1mm Відстань між символами
Line-height 2mm,4mm Відстань між рядками
Text-align Left, right, center, justify Вирівнювання тексту
Text-decorate none, underline, blinkoverline, line-throught Оформлення тексту
Text-indent 2cm Абзацний відступ
Margin-top 4mm Відступ зверху
Margin-right 4mm Відступ справа
Margin-bottom 4mm Відступ знизу
Margin-left 4mm Відступ зліва
Height 4cm Висота елемента
Width 14cm Ширина елемента
Float none, left, right Обтікання об'єкта текстом
Сolor red, green, #343434 Колір елемента
Vertical-allign top, super, bottom, middle Вертикальне вирівнювання
List-style-image URL("Адреса графічного файлу маркера списку")
List-style-position inside, outside Позиція маркера
List-style-type disc, circle, square, lower-roman тощо Вигляд маркера(диск, круг, квадрат)

Теги <style>,<div>,<span> [ред.]

Внтутрішні таблиці стилів описують у головному файлі в контейнері тега <head>...</head> за допомогою тега-контейнера <style>...</style>.

Правила можуть починатися або з назви тега без кутових дужок, або з днякого слова користувача, перед яким є крапка. Це слово стає назвою типу, який можна застосувати в контейнері тега<BODY> до іншого,до текстового блока, фрагмена тексту чи деякого елемента, наприклад,

.mystyle1{color:red; font-size:40pt; margin-top:30px}
.mystyle2{color:black; font-size:16pt; margin-top:-50px}

Для виокремлення текстового блока, до якого застосовуватимуть стиль, призначений тег контейнер<DIV параметр></DIV> з параметром CLASS, який задає конкретний стиль, що діятиме на блок:<DIV CLASS=назва стилю>блок</DIV>.

Для виокремлення у блоці текстового фрагмента, для якого будуть переозначувати стиль, застосовують тег-контейнер <SPAN>...</SPAN>

Селектори CSS [ред.]

Селектор class [ред.]

Допустимо, ми хочемо зробити сторінку, на якій буде два види абзаців <p>, причому обидва види будуть постійно чергуватися і часто повторятися. Приклад такої сторінки – інтервью, в якому чергуются питання журналіста і відповіді людини. Звичайно, при створені такої сторінки ми захочемо візуально відділити питання і відповіді один від одного. Якщо б нам прийшлось це робити можливостями CSS, які ми роздивилися вище, то нам пришлось би створювати дві різні таблиці стилів. На щастя, це нам не потрібно. Ми можемо створити в одній таблиці стилів два різних класа абзаці з допомогою селектора класу. Це буде виглядати так:

<html>
<head>
...
<style>
...
p.ask {
font-style: italic;
font-weight: bold;
font-family: Arial, sans-serif;
font-size: 10pt;
color: gray;
margin-left: 15px
}
p.answer {
font-family: 'Times New Roman', serif;
font-size: 12 pt; color: black;
}
...
</style>
...
</head>
<body>
...
<p class="ask">Питання журналіста</p>
<p class="answer">Відповідь</p>
...
</body>
</html>

В наведеному прикладі питання журналіста будуть відображатися шрифтом Arial сірого кольору, напівжирним курсивом, розміром 10 пунктів з відступом 15 пікселів від лівого краю сторінки. Відповіді ж будуть відображені шрифтом Times New Roman розміром 12 пунктів чорного кольору. Ви можете створювати будь-яку кількість класів для будь-яких елементів сторінки.

Селектор id [ред.]

Візьмемо наступний приклад. Наприклад ви хочете створити на сторінці які-небудь унікальні предмети, до яких в майбутньому хочете звертатись з програм JavaScript. Можливо, ці елементи будуть повторюватися на інших сторінках, і ви хотіли би задати їм єдине оформлення за допомогою CSS. На цей випадок в таблицях стилів є можливість присвоїння унікальним елементам ідентифікаторів (id). Ось приклад назанчення индифікатора і правил CSS таким елементам:

<html>
<head>
...
<style>
...
input#green {color: green;}
input#red {color: red;}
...
</style>
...
</head>
<body>
...
<form ...>
<p>Текст, введений в це поле, буде відображений зеленим кольором:
<input type="text" id="green" name="info1" size="20"></p>
<p>Текст, введений в це поле, буде відображений червоним кольором:
<input type="text" id="red" name="info2" size="20"></p>
</form>
...
</body>
</html>

Аналогічним образом унікальні ідентифікатори можуть бути назначені будь-якій кількості будь-яких елеменів на сторінці.