Наслідування CSS властивостей
Розбираємо, як CSS властивості передаються від батьківських елементів до дочірніх.
Наслідування CSS властивостей
У CSS деякі властивості можуть наслідуватися дочірніми елементами від батьківських. Це означає, що якщо у батьківського елемента задано певну властивість, вона автоматично може застосуватися до його нащадків.
Розглянемо приклад. У нас є абзац, всередині якого знаходиться текст у тегу i:
<p>
This is some <i>text</i> in paragraph.
</p>p {
color: red;
}У результаті червоним кольором стане не тільки текст абзацу, а й текст усередині тега i. Це відбувається тому, що властивість color наслідується.
Не всі CSS властивості наслідуються, але багато властивостей, які відповідають за оформлення тексту, можуть передаватися від батьківських елементів до дочірніх.
Перевизначення успадкованих властивостей
За потреби можна змінити успадковану властивість для дочірнього елемента, задавши для нього окремий CSS-селектор.
<p>
This is some <i>text</i> in paragraph.
</p>p {
color: red;
}
i {
color: blue;
}У цьому випадку весь текст абзацу буде червоним, а текст у тегу i стане синім, тому що для нього задано власне значення кольору.
Порядок розташування селекторів у CSS не має значення, якщо вони мають однакову специфічність.
i {
color: blue;
}
p {
color: red;
}Результат буде таким самим: текст абзацу червоний, а текст у тегу i синій.
Практичні завдання
- №1
- Який колір матиме текст у тегу b?
- <p>
- This is some <b>text</b> in paragraph.
- </p>
- p {
- color: blue;
- }
✅ Показати відповідь
Текст у тегу b буде синього кольору. Властивість color успадкується від батьківського елемента p.
- №2
- Який колір матиме текст у тегу b?
- <p>
- This is some <b>text</b> in paragraph.
- </p>
- p {
- color: blue;
- }
- b {
- color: red;
- }
✅ Показати відповідь
Текст у тегу b буде червоним, тому що для b задано власну властивість color, яка перевизначає успадковане значення.
- №3
- Який колір матиме текст у тегу b?
- b {
- color: red;
- }
- p {
- color: blue;
- }
✅ Показати відповідь
Текст у тегу b буде червоним. Власний стиль b має пріоритет над успадкованим стилем від p.
- №4
- Який колір матиме текст у тегу li?
- ul {
- color: blue;
- }
✅ Показати відповідь
Текст у тегах li буде синім, оскільки li успадковує властивість color від ul.
- №5
- Який колір матиме текст у тегу li?
- ul {
- color: blue;
- }
- li {
- color: red;
- }
✅ Показати відповідь
Текст у li буде червоним, тому що власний стиль li замінює успадкований стиль від ul.
- №6
- Який колір матиме текст у тегу i?
- ul {
- color: blue;
- }
- li {
- color: red;
- }
- i {
- color: green;
- }
✅ Показати відповідь
Текст у тегу i буде зеленим, тому що для нього задано власний колір.
- №7
- Який розмір матиме текст у тегу i?
- i {
- font-size: 30px;
- }
- ul {
- font-size: 20px;
- }
- li {
- color: red;
- font-weight: bold;
- }
✅ Показати відповідь
Текст у тегу i буде мати розмір 30px, тому що для нього задано власну властивість font-size. Значення 20px від ul не використовується.