JavaRush /Курсы /Модуль 1: Web Core /Собственные свойства и наследование

Собственные свойства и наследование

Модуль 1: Web Core
16 уровень , 2 лекция
Открыта

3.1 Собственные свойства

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

Что такое собственные свойства?

Напоминаю, собственные свойства (они же CSS-переменные) — это значения, которые можно задавать в CSS и затем использовать многократно по всему стилевому файлу. Они объявляются с помощью двойного дефиса (--) и могут быть использованы с функцией var().

Объявление собственных свойств:

CSS
    
      :root {
        --main-color: #3498db;
        --padding: 10px;
      }
    
  

Использование собственных свойств:

CSS
    
      background-color: var(--main-color);
      padding: var(--padding);
    
  

3.2 Влияние на производительность

1. Оптимизация повторного использования

Использование CSS-переменных помогает избежать дублирования кода, так как одно и то же значение можно использовать многократно, что снижает объем кода и упрощает его поддержку.

Пример:

CSS
    
      :root {
        --main-color: #3498db;
      }

      .header {
        background-color: var(--main-color);
      }

      .footer {
        background-color: var(--main-color);
      }
    
  

2. Кэширование и рендеринг

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

3. Динамическое обновление

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

Пример:

JavaScript
    
      document.documentElement.style.setProperty('--main-color', '#e74c3c');
    
  

3.3 Влияние на организацию кода

Централизованное управление стилями

Определяя CSS-переменные в одном месте, можно централизованно управлять стилями, что упрощает их поддержку и изменение.

Пример

Изменение значения переменной в :root автоматически обновит все связанные стили по всему документу:

CSS
    
      :root {
        --font-size: 16px;
        --line-height: 1.5;
      }

      body {
        font-size: var(--font-size);
        line-height: var(--line-height);
      }
    
  

Наследование и контекст

CSS-переменные наследуются дочерними элементами от родительских. Это позволяет задавать значения на верхнем уровне и использовать их в более конкретных контекстах.

Пример:

CSS
    
      :root {
        --base-font-size: 16px;
      }

      .container {
        font-size: var(--base-font-size);
      }

      .container .heading {
        font-size: calc(var(--base-font-size) * 1.5);
      }
    
  

Улучшение читабельности

Использование CSS-переменных улучшает читабельность кода, так как переменные могут быть названы в соответствии с их функцией, делая код более понятным.

Пример:

CSS
    
      :root {
        --primary-color: #3498db;
        --secondary-color: #2ecc71;
      }

      .primary-button {
        background-color: var(--primary-color);
      }

      .secondary-button {
        background-color: var(--secondary-color);
      }
    
  

Локальные и глобальные переменные

Переменные могут быть объявлены как на глобальном уровне (например, в :root), так и локально для конкретных селекторов. Это позволяет создавать гибкие и адаптивные стили.

Пример:

CSS
    
      :root {
        --global-padding: 10px;
      }

      .section {
        --section-padding: 20px;
        padding: var(--section-padding);
      }

      .item {
        padding: var(--global-padding);
      }
    
  

3.4 Пример полной реализации

Вот пример использования переменных для наследования и локального переопределения:

CSS
    
      :root {
        --main-padding: 10px;
        --main-margin: 20px;
        --primary-color: #3498db;
      }

      .container {
        padding: var(--main-padding);
        margin: var(--main-margin);
      }

      .container .header {
        --primary-color: #e74c3c; /* Переопределение переменной для локального использования */
        color: var(--primary-color);
      }

      .container .content {
        color: var(--primary-color); /* Использует значение переменной из корня */
      }
    
  
HTML
    
      <div class="container">
        <div class="header">This is the header</div>
        <div class="content">This is the content</div>
      </div>
    
  

Объяснение:

  • В этом примере --primary-color используется для стилизации текста в элементе .content, наследуя значение из корня
  • В элементе .header переменная --primary-color переопределена, и используется новое значение
1
Задача
Модуль 1: Web Core, 16 уровень, 2 лекция
Недоступна
Переиспользование CSS
Переиспользование CSS
1
Задача
Модуль 1: Web Core, 16 уровень, 2 лекция
Недоступна
Переопределение CSS
Переопределение CSS
Комментарии (3)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
No Name Уровень 9
1 июня 2025
+ лекция в копилке
RayCowperwood Уровень 48
26 мая 2025
напомню о группировке

      h1, h2, p, span {
        ваш код
      }
проще и удобнее, чем писать код отдельно для каждого селектора
Maria Уровень 48
24 октября 2025
а можно задать h1, h2, разницу в размере --- --- font-size:calc(var(--main-font-size)*2.5);