логотип PurpleSchool
логотип PurpleSchool

Наследование в CSS. Полное руководство с примерами

Автор

Дмитрий Нечаев

CSS (Cascading Style Sheets) позволяет разработчикам управлять внешним видом HTML-элементов на веб-странице. Одной из важных особенностей CSS является наследование, которое позволяет применять некоторые стили не только к самому элементу, но и к его потомкам. Наследование помогает упростить управление стилями и сделать код более чистым и понятным.

Основные принципы наследования

Наследование в CSS работает по принципу передачи значений свойств от родительского элемента к дочерним элементам. Однако не все CSS-свойства наследуются автоматически. Разберем основные аспекты наследования, какие свойства наследуются, а какие нет.

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

Некоторые свойства CSS по умолчанию наследуются от родительских элементов. Вот несколько примеров таких свойств:

  • color (цвет текста)
  • font-family (шрифт)
  • font-size (размер шрифта)
  • line-height (межстрочный интервал)
  • text-align (выравнивание текста)
  • visibility (видимость)

Пример наследуемых свойств:

<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <style>
    .parent {
      color: blue; /* Цвет текста будет унаследован дочерними элементами */
      font-family: Arial, sans-serif; /* Шрифт будет унаследован дочерними элементами */
    }
  </style>
  <title>Наследование в CSS</title>
</head>
<body>
  <div class="parent">
    <p>Этот текст будет синим и написан шрифтом Arial.</p>
    <p>Этот текст также будет синим и написан шрифтом Arial.</p>
  </div>
</body>
</html>

В этом примере оба абзаца унаследуют цвет и шрифт от родительского элемента <div class="parent">.

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

Многие свойства CSS не наследуются по умолчанию. Вот несколько примеров таких свойств:

  • margin (внешние отступы)
  • padding (внутренние отступы)
  • border (граница)
  • background (фон)
  • width (ширина)
  • height (высота)
  • display (отображение)

Пример ненаследуемых свойств:

<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <style>
    .parent {
      margin: 20px; /* Внешние отступы не наследуются дочерними элементами */
      padding: 10px; /* Внутренние отступы не наследуются дочерними элементами */
      border: 2px solid black; /* Граница не наследуется дочерними элементами */
      background-color: lightblue; /* Фон не наследуется дочерними элементами */
    }
  </style>
  <title>Наследование в CSS</title>
</head>
<body>
  <div class="parent">
    <p>Этот текст не унаследует внешние и внутренние отступы, границу и фон от родительского элемента.</p>
  </div>
</body>
</html>

В этом примере абзац внутри <div class="parent"> не унаследует ни отступы, ни границу, ни фон родительского элемента.

Управление наследованием

Свойство inherit

Если необходимо явно указать, что свойство должно наследоваться, можно использовать значение inherit для этого свойства.

Пример использования inherit:

<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <style>
    .parent {
      color: blue;
    }

    .child {
      color: inherit; /* Явно указываем на наследование цвета от родителя */
    }
  </style>
  <title>Наследование в CSS</title>
</head>
<body>
  <div class="parent">
    <p class="child">Этот текст унаследует цвет от родителя.</p>
  </div>
</body>
</html>

Свойства initial и unset

Свойство initial сбрасывает значение свойства к его начальному значению по умолчанию, а unset устанавливает значение свойства в inherit, если оно наследуемое, или в initial в противном случае.

Пример использования initial и unset:

<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <style>
    .parent {
      color: blue;
    }

    .child-initial {
      color: initial; /* Сбрасываем цвет до начального значения (обычно черного) */
    }

    .child-unset {
      color: unset; /* Устанавливаем цвет в inherit, если наследуемое, или initial */
    }
  </style>
  <title>Наследование в CSS</title>
</head>
<body>
  <div class="parent">
    <p class="child-initial">Этот текст сбросит цвет до начального значения.</p>
    <p class="child-unset">Этот текст унаследует цвет от родителя, так как color наследуемое свойство.</p>
  </div>
</body>
</html>

Заключение

Наследование является мощным инструментом в CSS, который помогает упростить управление стилями и сократить количество кода. Понимание того, какие свойства наследуются, а какие нет, позволяет разработчикам создавать более гибкие и легко поддерживаемые стили. Используйте наследование, чтобы сделать ваши таблицы стилей более организованными и эффективными.

Стрелочка влевоПодход «Pixel Perfect» в верстке сайтов. Полное руководство с примерамиСтрелочка вправо

Постройте личный план изучения Css до уровня Middle — бесплатно!

Css — часть карты развития Frontend

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Бесплатные лекции

Все гайды по Css

Полное руководство по использованию свойства will-change в CSSПолное руководство по свойству transform-style в CSSУправление точкой опоры трансформаций в CSS с помощью transform-originИспользование функций CSS-трансформации; Полное руководствоПолное руководство по свойству transform-box в CSSУправление элементами с помощью свойства transform в CSSПолное руководство по свойству perspective-origin в CSSПолное руководство по свойству perspective в CSSПолное руководство по свойству backface-visibility в CSS
Псевдокласс selection. Полное руководство с примерамиПсевдоэлементы в CSS. Полное руководство с примерамиПсевдоэлемент placeholder в CSS. Полное руководство с примерамиПсевдоэлемент marker в CSS. Полное руководство с примерамиПсевдоэлемент first-line в CSS. Полное руководство с примерамиПсевдоэлемент first-letter в CSS. Полное руководство с примерамиСвойство content в CSS. Полное руководство с примерамиПсевдоэлемент before в CSS. Полное руководство с примерамиПсевдоэлемент backdrop в CSS. Полное руководство с примерамиПсевдоэлемент after в CSS. Полное руководство с примерами
Универсальный селектор в CSS. Полное руководство с примерамиСелектор по тегу в CSS. Полное руководство с примерамиПеречисление селекторов в CSS. Полное руководство с примерамиСелектор потомка в CSS. Полное руководство с примерамиСелектор по идентификатору в CSS; Полное руководство с примерамиКомбинированные селекторы в CSS; Полное руководство с примерамиСелектор по атрибуту в CSS; Полное руководство с примерамиСелектор по классу в CSS; Полное руководство с примерами
Псевдокласс where в CSS. Полное руководство с примерамиПсевдокласс visited в CSS. Полное руководство с примерамиПсевдоклассы группы type в CSS. Полное руководство с примерамиПсевдокласс target в CSS. Полное руководство с примерамиПсевдокласс root в CSS. Полное руководство с примерамиПсевдокласс required в CSS. Полное руководство с примерамиПсевдоклассы в CSS. Полное руководство с примерамиПсевдокласс placeholder-shown в CSS. Полное руководство с примерамиПсевдокласс optional в CSS. Полное руководство с примерамиПсевдокласс not в CSS. Полное руководство с примерамиПсевдокласс link в CSS. Полное руководство с примерамиПсевдокласс is в CSS. Полное руководство с примерамиПсевдокласс lang в CSS. Полное руководство с примерамиПсевдоклассы invalid и valid в CSS. Полное руководство с примерамиПсевдокласс indeterminate в CSS. Полное руководство с примерамиПсевдоклассы in-range и out-of-range. Полное руководство с примерамиПсевдокласс hover в CSS. Полное руководство с примерамиПсевдокласс has в CSS. Полное руководство с примерамиПсевдокласс focus-within в CSS. Полное руководство с примерамиПсевдокласс focus-visible в CSS. Полное руководство с примерамиПсевдокласс focus в CSS. Полное руководство с примерамиПсевдокласс empty в CSS. Полное руководство с примерамиПсевдоклассы disabled и enabled в CSS. Полное руководство с примерамиПсевдокласс default в CSS. Полное руководство с примерамиПсевдоклассы группы child в CSS. Полное руководство с примерамиПсевдокласс checked в CSS. Полное руководство с примерамиПсевдокласс active в CSS. Полное руководство с примерами
Функция var в CSS. Полное руководство с примерамиФункция url в CSS. Полное руководство с примерамиФункция repeating-radial-gradient в CSS. Полное руководство с примерамиФункция repeating-linear-gradient в CSS. Полное руководство с примерамиФункция repeating-conic-gradient в CSS. Полное руководство с примерамиФункция radial-gradient в CSS. Полное руководство с примерамиФункция min в CSS. Полное руководство с примерамиФункция max в CSS. Полное руководство с примерамиФункция linear-gradient в CSS. Полное руководство с примерамиФункция image-set в CSS. Полное руководство с примерамиФункции фильтров в CSS. Полное руководство с примерамиФункция conic-gradient в CSS. Полное руководство с примерамиФункция clamp в CSS. Полное руководство с примерамиФункция calc в CSS. Полное руководство с примерамиФункция attr в CSS. Полное руководство с примерами
Вендорные префиксы в CSS. Полное руководство с примерамиКонтекст наложения в CSS. Полное руководство с примерамиСпецифичность в CSS. Полное руководство с примерамиПодход «Pixel Perfect» в верстке сайтов. Полное руководство с примерамиНаследование в CSS. Полное руководство с примерамиCSS-правило. Полное руководство с примерамиКомментарии в CSS. Полное руководство с примерамиПринцип каскада в CSS. Полное руководство с примерамиБлочная модель в CSS. Полное руководство с примерамиСвойство all в CSS. Полное руководство с примерамиПодключение стилей к HTML. Полное руководство с примерами
Полное руководство по свойству will-change в CSSПолное руководство по transition-timing-function в CSSОсновы использования transition-property в CSS; управление плавными переходамиCSS transition-duration; Полное руководство по управлению продолжительностью переходовCSS transition-delay; Полное руководство по управлению задержкой переходовCSS transition; Полное руководство по созданию плавных переходовCSS @keyframes; Полное руководство по созданию анимацийCSS animation-timing-function; Полное руководство по управлению проигрыванием анимацийCSS animation-play-state; Полное руководство по управлению анимациямиCSS animation-name; Полное руководство по заданию имени анимацииCSS animation-iteration-count; Полное руководство по управлению количеством повторений анимацииCSS animation-fill-mode; Полное руководство по управлению состоянием элементов после анимацииCSS animation-duration; Полное руководство по управлению длительностью анимацииCSS animation-direction; Полное руководство по управлению направлением анимацииCSS animation-delay; Полное руководство с примерамиCSS-анимации; Полное руководство с примерами
Открыть базу знаний

Лучшие курсы по теме

изображение курса

HTML и CSS

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.9
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

TypeScript с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

Next.js - с нуля

Антон Ларичев
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее