Урок 35. Старый vs Новый: Desktop-first подход

📁 Раздел: Адаптивная вёрстка ⏱️ Время изучения: ~70 мин 🎯 Сложность: Средняя
#max-width #media

⚡ Кратко

Здесь два сравнения. Первое — внутри desktop-first: жёсткая фиксированная ширина (плохо) против гибкой базы (хорошо). Второе — подход против подхода: desktop-first (max-width) vs mobile-first (min-width).

  • Фиксированная width: 1180px даёт горизонтальный скролл на узких экранах — даже с медиазапросом.
  • Гибкая база (minmax, fr) плюс max-width для упрощения — рабочий desktop-first.
  • Mobile-first (min-width) — современный дефолт; desktop-first уместен для legacy и desktop-админок.

Сравнение 1: жёсткая ширина → гибкая база

❌ Старый подход: фиксированный пиксельный макет

Жёсткие размеры и поздние «заплатки» создают горизонтальный скролл, слишком длинные строки или нечитаемые карточки. На узком экране блок 1180px просто не помещается.

📱 узкое окно: блок 1180px вылезает → скролл
nav
область
aside
↔ появилась горизонтальная прокрутка
📄 lesson-35/old.css
.admin-layout {
  width: 1180px;            /* жёсткая ширина */
  display: grid;
  grid-template-columns: 220px 1fr 260px;
}

@media (max-width: 768px) {
  .admin-layout {
    width: 100%;            /* заплатка, но колонки остались */
  }
}

✅ Современный подход: гибкая основа + осмысленные breakpoint

Сначала задаём гибкую основу (minmax, fr), затем добавляем breakpoint только там, где он действительно улучшает содержимое.

🖥️ десктоп
nav
область
aside
📱 телефон: всё помещается
nav
область
aside
📄 lesson-35/modern.css
.admin-layout {
  display: grid;
  grid-template-columns: 16rem minmax(0, 1fr) 18rem;
  gap: 1.5rem;
}

@media (max-width: 64rem) {
  .admin-layout { grid-template-columns: 14rem minmax(0, 1fr); }
}

@media (max-width: 47.99rem) {
  .admin-layout { display: block; }
}

Сравнение 2: desktop-first vs mobile-first

Это два зеркальных способа писать один и тот же адаптив. Разница — в направлении и в том, что считается «базой».

Desktop-firstMobile-first
База без @mediaШирокий экран (десктоп)Узкий экран (телефон)
Медиазапрос@media (max-width: …)@media (min-width: …)
Что делает @mediaУпрощает, срезает лишнееДостраивает, добавляет сложность
Порядок breakpointОт большего к меньшемуОт меньшего к большему
Где уместенLegacy, админки, дашбордыНовые контентные сайты (дефолт)
Честный вывод: mobile-first сегодня предпочтительнее по умолчанию — он реже даёт горизонтальный скролл и заставляет начинать с самого важного. Но desktop-first не «устаревший хлам»: для сложных десктоп-интерфейсов, где полная версия — нормальное состояние, он остаётся удобным и оправданным выбором.

Навигация