1. Атрибут class та тег style

Але це ще не все. Після того, як створили сотні стилів, постало питання: як їх використовувати? І тоді вирішити групувати їх у «класи». Це, звісно, не такі класи, як у Java. Просто спеціальні групи стилів.

І якщо до використання «класів» у тебе була картинка:


       <img src="logo.png" style="width=100px;height=100px;opacity=0.5">
    

То тепер її можна записати у вигляді:



<img src="logo.png" class="picture">
 
<style>
    img.picture {
        width=100px;
        height=100px;
        opacity=0.5
    }
</style>

Ми створили спеціальний «стиль» picture і перенесли до нього значення стилів з атрибуту style. А потім пов'язали <img> і «стиль» picture за допомогою тега class.

2. Селектор, види селекторів

Ці стилі, які винесено окремо, стали називати класами або селекторами. Вони мають кілька важливих особливостей.

В одного html-елемента може бути кілька селекторів. Їхні назви вказуються через пробіл. Приклад:


       <img src="logo.png" class="picture main">
    

Одна з причин, чому ми тут торкнулися теми селекторів, – це те, що вони можуть застосовуватися автоматично. І ця їхня корисна властивість надалі буде дуже часто використовуватися. У тому числі і Java-розробниками.

Ось їх короткий список:

# Селектор приклад Опис
1 *
* {
  margin: 0;
  padding: 0;
}
Застосовується до всіх елементів HTML-документу.
2 #id
#img123 {
   width:100px;
   height 100px;
}
Після # йде id елемента, до якого потрібно застосувати цей стиль.
3 tag
table {
   color: black;
}
Застосовується до всіх таблиць документа.
4 tag.selector
table.important {
   color: red;
}
Застосовується до всіх таблиць документа, які вказано в атрибуті class.
5 .selector
.picture {
  opacity: 0.5
}
Застосовується до всіх елементів, які вказано в атрибуті class. Будь-який tag.
6 parent child
main article {
  color: blue;
}
Застосовується до всіх елементів, у яких тег батько містить клас main, а дочірній тег містить клас article.
7 tag:link
a:link {
color: blue;
}
Псевдоклас link використовується для стилізації посилань, на які користувач ще не натискав.
8 tag:visited
a:visited {
color: red;
}
Псевдоклас link використовується для стилізації посилань, на які користувач вже натискав.
9 tag:checked
input[type=radio]:checked {
 border: 1px solid black;
}
Цей псевдоклас обере лише зазначені елементи інтерфейсу користувача: радіокнопки або чекбокси.
10 tag:hover
div:hover {
  background: red;
}
Цей псевдоклас дозволяє змінити стиль елемента при наведенні мишкою.
11 tag:first-child
ul li:first-child {
 border-top: none;
}
Цей псевдоклас дозволить обрати лише перший дочірній елемент.

Тобі не треба все це запам'ятовувати. Але добре, якщо ти переглянеш цю таблицю кілька разів, щоб інформація відклалася в твоїй пам'яті. Без інтернету в сучасному нині ніяк, а в інтернеті – ніяк без селекторів.