← Назад к вопросам

Какие знаешь CSS Units?

1.0 Junior🔥 201 комментариев
#HTML и CSS

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

CSS Units (Единицы измерения в CSS)

Классификация CSS Unit

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

Абсолютные единицы (Absolute Units)

Абсолютные единицы имеют фиксированный размер и не зависят от других параметров.

1. Пиксели (px)

.box {
  width: 300px;
  height: 200px;
  font-size: 16px;
}

Самая популярная единица. 1px = 1/96 дюйма. Используется для точного контроля размеров.

2. Сантиметры (cm, mm, in, pt, pc)

.paper {
  width: 21cm;
  height: 29.7cm;
}

Редко используются в веб-разработке, в основном для печати.

Относительные единицы (Relative Units)

Относительные единицы зависят от других параметров.

1. em — относительно размера шрифта элемента

body {
  font-size: 16px;
}

.parent {
  font-size: 20px;
}

.child {
  font-size: 1.5em; /* 20px * 1.5 = 30px */
  margin: 0.5em;    /* 30px * 0.5 = 15px */
}

Проблема: вложенные em могут привести к непредсказуемым результатам.

2. rem — относительно размера шрифта корневого элемента

html {
  font-size: 16px;
}

.container {
  font-size: 2rem;  /* 16px * 2 = 32px */
  padding: 1rem;    /* 16px * 1 = 16px */
}

.small-text {
  font-size: 0.875rem; /* 16px * 0.875 = 14px */
}

Рекомендуется использовать rem вместо em для предсказуемости.

3. Viewport Units (vw, vh, vmin, vmax)

.fullscreen {
  width: 100vw;      /* 100% ширины viewport */
  height: 100vh;     /* 100% высоты viewport */
}

.hero {
  width: 80vw;       /* 80% ширины viewport */
  height: 50vh;      /* 50% высоты viewport */
}

.responsive-font {
  font-size: 5vmin;  /* 5% от меньшего из ширины/высоты */
}

.max-unit {
  font-size: 3vmax;  /* 3% от большего из ширины/высоты */
}

Полезны для полноэкранных элементов и адаптивного дизайна.

4. Проценты (%)

.container {
  width: 100%;       /* 100% ширины родителя */
  height: 100%;      /* 100% высоты родителя */
}

.half {
  width: 50%;
  padding: 5%;       /* 5% от ширины родителя */
}

Процент вычисляется относительно родительского элемента.

5. ch — ширина символа "0"

.input {
  width: 40ch;       /* 40 символов */
}

Полезно для контроля длины текста.

6. ex — высота символа "x"

.icon {
  width: 1ex;
  height: 1ex;
}

Редко используется, в основном для мелких типографических деталей.

Сравнение единиц

  • px — абсолютные, всегда 300 пикселей
  • em — относительно размера шрифта элемента
  • rem — относительно размера шрифта root элемента
  • vw/vh — относительно размера viewport
  • % — относительно размера родителя

Рекомендации для использования

Используй rem для:

  • Шрифтов
  • Отступов (padding, margin)
  • Расстояний между элементами
  • Радиуса скругления

Используй px для:

  • Border-ов
  • Очень небольших отступов
  • Когда требуется точность

Используй % для:

  • Ширины и высоты
  • Позиционирования

Используй vw/vh для:

  • Полноэкранных секций
  • Адаптивного масштабирования

Современный подход (CSS переменные)

:root {
  --spacing: 1rem;
  --font-size-base: 16px;
  --font-size-lg: 1.5rem;
}

body {
  font-size: var(--font-size-base);
}

.container {
  padding: var(--spacing);
  font-size: var(--font-size-lg);
}

Использование CSS переменных делает код более гибким и поддерживаемым.