Как ты делаешь адаптивную вёрстку
Вопрос
Как ты подходишь к адаптивной вёрстке? Какие инструменты используешь?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
meta viewport с `width=device-width`
Mobile-first: база для узкого экрана, медиазапросы `min-width` сверху
Гибкая раскладка на Flexbox и Grid, `auto-fit` и `minmax` вместо лишних брейкпоинтов
Относительные единицы: `rem` для шрифтов, `clamp()` для плавных размеров
Контейнерные запросы для компонентов, которые живут в местах разной ширины
Адаптивные картинки: `srcset`/`sizes`, `width`/`height` или `aspect-ratio`
Что могут спросить следом
- Как выбираешь брейкпоинты?
- Почему шрифт не стоит задавать чистым
vw? - Как проверяешь вёрстку на реальных устройствах?
Разбор
Начинаю с meta viewport, иначе мобильный браузер покажет уменьшенную десктопную версию. Пишу mobile-first: базовые стили для узкого экрана, а для широких добавляю медиазапросы от определённой ширины. Брейкпоинты ставлю там, где ломается контент, а не под модели телефонов. Стараюсь, чтобы раскладка была гибкой сама по себе: сетка карточек на repeat(auto-fit, minmax(240px, 1fr)) вообще не требует медиазапросов, колонка текста width: min(100% - 32px, 720px). Шрифты в rem, чтобы уважать настройки пользователя, а заголовки через clamp() с rem + vw в середине. Для компонентов, которые встречаются и в сайдбаре, и в основной колонке, использую контейнерные запросы: компонент сам знает ширину своего места. Для картинок srcset и sizes, плюс width и height, чтобы не было прыжков вёрстки. Для полноэкранных блоков на телефоне svh или dvh вместо vh. И проверяю на реальном телефоне, а не только в эмуляторе DevTools.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.