Наследование
В CSS, наследование определяет, что происходит, когда для свойства элемента не указано значение.
Свойства CSS можно разделить на два типа:
- наследуемые свойства, которые по умолчанию устанавливаются в вычисленное значение родительского элемента
- ненаследуемые свойства, которые по умолчанию устанавливаются в начальное значение свойства
Обратитесь к определению любого свойства CSS, чтобы узнать, наследует ли конкретное свойство по умолчанию ("Наследуется: да") или нет ("Наследуется: нет").
Наследуемые свойства
Когда для наследуемого свойства не указано значение в элементе, элемент получает вычисленное значение этого свойства в родительском элементе. Только корневой элемент документа получает начальное значение, указанное в описании свойства.
Типичным примером наследуемого свойства является свойство color. Рассмотрим следующие правила стилей и разметку:
p {
color: green;
}
<p>This paragraph has <em>emphasized text</em> in it.</p>
Слова "выделенный текст" будут отображаться зеленым цветом, так как элемент em унаследовал значение свойства color от элемента p. Он не получает начальное значение свойства (который цвет используется для корневого элемента, когда на странице не указан цвет).
Ненаследуемые свойства
Когда для ненаследуемого свойства не указано значение в элементе, элемент получает начальное значение этого свойства (как указано в описании свойства).
Типичным примером ненаследуемого свойства является свойство border. Рассмотрим следующие правила стилей и разметку:
p {
border: medium solid;
}
<p>This paragraph has <em>emphasized text</em> in it.</p>
У слов "выделенный текст" не будет другого рамки (так как начальное значение border-style равно none).
Примечания
Ключевое слово inherit позволяет авторам явно указать наследование. Оно работает как для наследуемых, так и для ненаследуемых свойств.
Вы можете управлять наследованием для всех свойств сразу с помощью сокращенного свойства all, которое применяет его значение ко всем свойствам. Например:
p {
all: revert;
font-size: 200%;
font-weight: bold;
}
Это возвращает стиль свойства font абзацев к значениям по умолчанию браузера, если не существует пользовательского стиля, в противном случае используется он. Затем увеличивается размер шрифта вдвое и устанавливается font-weight равный "bold".
Переопределение наследования, пример
Используя наш предыдущий пример с border, если мы явно зададим наследование с помощью inherit, мы получим следующее:
p {
border: medium solid;
}
em {
border: inherit;
}
<p>This paragraph has <em>emphasized text</em> in it.</p>
Здесь мы видим еще одну рамку вокруг слов "выделенный текст".
См. также
- Значения CSS для управления наследованием:
inherit,initial,revert,revert-layerиunset - Обработка ошибок CSS
- Введение в каскад CSS
- Основные принципы: каскад CSS
- Основные принципы: слои каскада
- Модуль каскада и наследования CSS
- Руководство по синтаксису CSS
- Модуль синтаксиса CSS
- Правила @
- Начальные, вычисленные, используемые и фактические значения
- Синтаксис определения значений
- Модуль вложенности CSS
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Inheritance