Перейти к основному содержимому

Наследование в CSS

Когда для свойства элемента не указано значение, дальнейшее определяет наследование. Свойство либо получает значение от родительского элемента, либо возвращается к своему начальному значению (значению по умолчанию).

Какой из двух вариантов применяется, зависит от типа свойства:

  • наследуемые свойства
  • ненаследуемые свойства

Наследуемые свойства

По умолчанию наследуемое свойство без собственного значения получает вычисленное значение родительского элемента.

Так обычно работают свойства, связанные с текстом, среди которых color, font-family, font-size, line-height и text-align, благодаря чему оформление текста остаётся единообразным во всём документе.

Ниже родительский элемент <p> передаёт свои значения color и font-size элементу <strong>, поэтому текст внутри него синий и имеет размер 20px.

Пример

И color, и font-size здесь передаются от абзаца:

Prompt
Создайте HTML-страницу, показывающую, как работают наследуемые свойства CSS. Стилизуйте абзац синим цветом и размером шрифта 20px, включив внутрь него элемент , чтобы продемонстрировать, что дочерний элемент наследует и цвет, и размер шрифта от родителя.
Результат: полная HTML-страница "}, {

Ненаследуемые свойства

Если значение не задано, ненаследуемое свойство просто использует своё начальное значение (значение по умолчанию).

Так обычно ведут себя свойства блочной модели и оформления, включая border, background, margin, padding, width и height.

Ниже border-style изначально равно none, поэтому элемент <strong> не получает дополнительной рамки, хотя окружающий его элемент <p> её имеет.

Пример

border здесь остаётся на абзаце и не передаётся дальше:

Prompt
Создайте HTML-страницу, показывающую, как работают ненаследуемые свойства CSS. Стилизуйте абзац с рамкой 1px solid red и включите внутрь него элемент , чтобы продемонстрировать, что дочерний элемент не наследует рамку от родителя.
Результат: полная HTML-страница "}, {

Ключевое слово inherit

Чтобы запросить наследование явно, используйте ключевое слово inherit, которое работает одинаково для наследуемых и ненаследуемых свойств.

Ниже оно указывает элементу <strong> внутри элемента <p> взять значение border от родителя, поэтому элемент <strong> получает дополнительную рамку.

Пример

Здесь ключевое слово inherit явно запрашивает наследование:

Prompt
Создайте HTML-страницу, показывающую, как работает ключевое слово CSS inherit. Стилизуйте абзац с рамкой 1px solid red. Затем используйте ключевое слово inherit для элемента strong внутри него, чтобы явно унаследовать рамку от родителя.
Результат: полная HTML-страница "}, {