Angular IDPStrong Junior
Модулі / Розмітка й стилі / Одиниці й адаптив
🔥 0

Модуль 1 · урок 11 з 14

Одиниці й адаптив

Одиниці — це те, через що верстка «майже правильна»: усе на місці, але при зміні шрифту в системі або при зумі все їде. Правило просте — розміри тексту й відступи в відносних одиницях, товщини ліній у пікселях.

Яку одиницю коли брати

ОдиницяВід чого рахуєтьсяДе доречна
pxНі від чого, фіксованаРамки, тіні, дрібні радіуси
remРозмір шрифту <html>Шрифти, відступи, розміри блоків — основна робоча одиниця
emРозмір шрифту самого елементаВнутрішні відступи кнопки, щоб масштабувались разом із текстом
%Розмір батькаШирини всередині контейнера
frВільне місце в gridКолонки сітки
dvh / svhВисота вікна з урахуванням панелейПовноекранні розкладки
chШирина символу «0»Обмеження довжини рядка тексту: max-width: 68ch

Чому rem, а не px. Якщо людина збільшила базовий шрифт у налаштуваннях браузера (а це роблять частіше, ніж здається), інтерфейс на rem масштабується цілком, а на px — лишається дрібним. Це і зручність, і пункт доступності. Проста математика: за замовчуванням 1rem = 16px, тож 0.875rem = 14px.

clamp: розмір, який сам себе тримає в межах

/* clamp(мінімум, бажане, максимум) */
h1 { font-size: clamp(1.75rem, 1.2rem + 2vw, 3rem); }

/* те саме для відступів і ширин */
.page { padding-inline: clamp(16px, 4vw, 48px); }

Один рядок замінює три медіазапити: заголовок плавно росте разом із вікном, але ніколи не стане меншим за 1.75rem і більшим за 3rem.

Медіазапити: mobile-first

/* базові стилі — для вузького екрана, без запитів */
.layout { display: grid; gap: 16px; }

/* далі ДОДАЄМО складність для широких */
@media (min-width: 1024px) {
  .layout { grid-template-columns: 260px 1fr; }
}

Чому саме так: у mobile-first базовий стан простіший, і кожен медіазапит лише додає, а не скасовує. У зворотному підході (max-width) доводиться відміняти те, що вже написав, — звідси й ростуть перебивання.

Про «фіксовані десктопні роздільності» з таблиці

У модулі 3 лід згадує фіксовані десктопні роздільності — це нормально для внутрішніх ентерпрайз-панелей: їх відкривають на робочому моніторі, а не на телефоні. Але навіть тоді розкладка має тягнутись між умовними 1280 і 1920, а панелі — мати власний скрол, а не розсувати сторінку. Тобто «фіксовано» означає «без мобільної версії», а не «жорсткі пікселі».