CSS-функции

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

5.1 Функция calc()

CSS-функции предоставляют эффективные инструменты для выполнения различных операций прямо в стилевых файлах. Функции calc(), min(), max() и clamp() особенно полезны для создания адаптивных и гибких дизайнов, так как позволяют выполнять математические операции и условное вычисление значений.

Функция calc() используется для выполнения математических операций в CSS. Она позволяет комбинировать различные единицы измерения, такие как пиксели (px), проценты (%), em, rem и другие, в одном выражении.

Синтаксис:

    
      селектор {
        свойство: calc(выражение);
      }
    
  

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

В этом примере ширина блока рассчитывается как 50% ширины родительского элемента минус 20 пикселей:

CSS
    
      /* Ширина блока - половина родительского элемента минус 20px */

      .block {
        width: calc(50% - 20px);
      }
    
  

5.2 Функции min(), max() и clamp()

Функции min(), max() и clamp() в CSS

Функция min()

Функция min() принимает несколько значений и возвращает наименьшее из них. Полезна для создания гибких размеров, которые изменяются в зависимости от контекста.

Синтаксис:

    
      селектор {
        свойство: min(значение1, значение2);
      }
    
  

Пример

В этом примере ширина контейнера будет 50% или 300 пикселей, в зависимости от того, что меньше:

CSS
    
      .container {
        width: min(50%, 300px);
      }
    
  

Функция max()

Функция max() принимает несколько значений и возвращает наибольшее из них. Полезна для задания минимальных размеров и обеспечения адаптивности.

Функция clamp()

Функция clamp() принимает три значения: минимальное, предпочтительное и максимальное. Ограничивает значение между минимальным и максимальным, стремясь к предпочтительному значению.

5.3 Преимущества использования CSS-функций

Преимущества использования CSS-функций:

  • Гибкость. CSS-функции позволяют создавать более гибкие и адаптивные стили, так как позволяют динамически вычислять значения.
  • Упрощение адаптивного дизайна. Функции min(), max() и clamp() значительно упрощают создание адаптивных дизайнов, позволяя ограничивать значения определенными пределами.
  • Уменьшение необходимости в медиа-запросах. Использование этих функций может сократить количество медиа-запросов, необходимых для адаптации стилей под разные размеры экранов.

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

CSS
    
      .container {
        display: flex;
        flex-direction: column;
        gap: 10px;
        padding: 20px;
      }

      .block {
        background-color: #3498db;
        color: white;
        padding: 10px;
        text-align: center;
      }

      .block:nth-child(1) {
        width: calc(50% - 20px);
      }

      .block:nth-child(2) {
        width: min(300px, 100%);
      }

      .block:nth-child(3) {
        width: max(200px, 50%);
      }

      .text {
        font-size: clamp(12px, 2vw, 24px);
      }
    
  
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Пример использования CSS-функций</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <div class="container">
            <div class="block">Блок с шириной calc(50% - 20px)</div>
            <div class="block">Блок с шириной min(300px, 100%)</div>
            <div class="block">Блок с шириной max(200px, 50%)</div>
            <p class="text">Текст с размером шрифта clamp(12px, 2vw, 24px)</p>
          </div>
        </body>
      </html>
    
  
1
Задача
Модуль 1: Web Core, 16 уровень, 4 лекция
Недоступна
Ширина с calc()
Ширина с calc()
1
Задача
Модуль 1: Web Core, 16 уровень, 4 лекция
Недоступна
Адаптивная ширина min()
Адаптивная ширина min()
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
No Name Уровень 36
1 июня 2025
+ лекция в копилке
RayCowperwood Уровень 48
26 мая 2025
дополнение к calc, пишите с пробелами работать НЕ будет

calc(80%-15px)
будет

calc(80% - 15px)