-
Перейдімо від пончиків до моркви, одного
з найкорисніших продуктів у світі,
-
а також найулюбленішої їжі кроликів.
-
Чи знаєте ви, що морква буває не
лише помаранчевою?
-
Спочатку вона була фіолетовою. І деяка
морква досі є такою.
-
Ми тут маємо коротку сторінку, що містить
список кольорів моркви
-
і речення про те, що перша морква була
фіолетовою.
-
Ми використали стилі, щоб зафарбувати
назви кольорів у відповідний колір.
-
Мені подобається, як стилі виглядають зі
списком, але я не впевнена, що мені
-
подобається, як стиль "purple" (фіолетовий)
виглядає в тексті.
-
Я думаю, мені краще не використовувати там
колір фону, а вибрати якесь менш нав'язливе
-
кольорове оформлення.
-
Як я можу сказати браузеру оформити
фіолетовий текст там по-іншому, ніж тут?
-
Що ж, вони мають однаковий клас, тому ми
не можемо використати ім'я класу,
-
доки не створимо новий клас.
-
Вони також мають однакову назву тега —
.
-
Тому ми не можемо використати селектор
елемент-плюс-клас, який ми щойно вивчили.
-
Є ще щось, що їх відрізняє?
-
Єдина відмінність — це те, що цей тег
знаходиться всередині тега ,
-
в той час як цей тег —
всередині тега .
-
Тобто є відмінність в батьківських тегах —
тегах, які є над ними.
-
За допомогою цієї інформації, ми можемо
створити правило CSS, використавши
-
"селектор нащадка" — спосіб вибрати елемент
залежно від його розташування в документі.
-
Наприклад, щоб вибрати фіолетовий тег
всередині абзацу,
-
ми напишемо "р", пробіл (він є дуже
важливим!)
-
і потім ім'я класу — ".purple".
-
Тепер ми додамо властивості, які
будуть менш помітними —
-
колір фону "transparent" змінить те,
що було раніше.
-
Чудово. Ми змінили цей фіолетовий текст,
не змінивши цей.
-
І тепер щоразу, коли ми матимемо клас
" purple" всередині параграфа, як тут,
-
застосовуватиметься саме цей новий стиль.
-
Ми можемо використовувати пробіл, щоб
пробратись ще глибше в наш документ.
-
Скажімо, ми хочемо застосувати стиль лише
до тих тегів , які є в тегах .
-
Ми починаємо з батьківського тега ,
потім ставимо пробіл та .
-
І, можливо, ми дамо їм іншу висоту рядка,
щоб розділити їх ще більше.
-
Чудово. Ми можемо навіть додати
перед , якщо ми хочемо впевнетись,
-
що це правило не буде застосоване до тегів
в тегах та .
-
Бачите, для того щоб використовувати
селектор нащадка, ми маємо добре знати
-
структуру документа і які теги є
всередині інших.
-
Якщо ви робите правильні відступи,
це буде просто,
-
тому що ваші відступи відображатимуть
ієрархію тегів.
-
Бачите, ось тут є тег , далі в ньому
є тег ,
-
а всередині тега є тег .
-
Якщо ж ви не використовуєте
відступів, краще виправте це зараз,
-
бо це значно полегшить ваше розуміння
структури сторінки
-
та селекторів CSS, які базуються на цій
структурі.
-
Ви можете використовувати пробіл
між будь-якими селекторами.
-
Наприклад, дістатись до певного тега за
елементом з конкретним ID
-
чи дістатись до елемента з ID, вказавши
перед тим назву класу,
-
ви можете використовувати
будь-які поєднання.
-
Єдине, що ви маєте пам'ятати — це те, що
коли структура вашої сторінки зміниться,
-
ваше старе правило CSS вже не діятиме.
-
Тому добре думайте про майбутні зміни вашої
сторінки, коли використовуєте ці селектори.
-
Ви завжди можете використовувати класи,
якщо ви хочете бути менш залежними
-
від структури вашої сторінки.
-
Погляньмо на правила, які я створила,
і обдумаймо їх.
-
Це перше правило оформлює певним
способом всі елементи класу "purple",
-
які є всередині абзаців.
-
Якщо я додам в майбутньому нові абзаци з
елементами класу "purple",
-
чи захочу я, щоб вони мали
цю властивість?
-
Так, тому що я думаю, що ця властивість
завжди добре виглядатиме в абзаці.
-
Чи потрібне мені конкретніше правило?
-
Можливо, якби ці абзаци були завжди cеред
елементів класу "article",
-
я б могла додати це до правила.
-
Але зараз це правило є найбільш конкретним.
-
Друге правило дає всім тегам
всередині елементів списку певну висоту рядка.
-
Чи хочу я, щоб теги всередині
списків завжди мали більшу висоту рядка?
-
Хм... мабуть, ні. Це правило, мабуть,
надто загальне.
-
Оскільки я не дуже впевнена, я додам клас
до тега
-
і потім зміню це правило на "ul.spacey",
-
щоб воно було більш конкретним.
-
В майбутньому, коли моя сторінка
розширюватиметься, я, можливо, робитиму
-
правила менш чи більш конкретними.
-
Додайте цей засіб до свого все більшого
набору засобів СSS і попрацюйте з ним,
-
щоб ви могли використати його,
коли буде така потреба.
-
Переклад на українську мову: Зоряна Гаврилюк, рев'юер: Юлія Білаш, Благодійний фонд "MagneticOne.org"