Container queries — наконец-то выкинул половину медиа-запросов, делюсь лайфхаком

Теги: #Docker#Vue
Рейтинг: 71.3% · 36 голосов
Frontend и backend разработка: JavaScript, TypeScript, React, Next.js, Vue, Node.js, PHP, REST и GraphQL API, вёрстка HTML/CSS и современные веб-приложения.
Ответить
Аватара пользователя
k8s2000
Сообщения: 85
Зарегистрирован: 11 май 2026, 00:27

Container queries — наконец-то выкинул половину медиа-запросов, делюсь лайфхаком

Сообщение k8s2000 »

Маленький инсайт для тех кто ещё не: карточка товара теперь подстраивается под ширину КОНТЕЙНЕРА а не вьюпорта. container-type: inline-size на родителе и @container в самой карточке. Один и тот же компонент в сайдбаре и в основной сетке выглядит правильно без дублей медиа-запросов.
👍 ❤️ 🔥 😄 🤔
✔ Лучший ответ сформирован автоматически — k_egor_s
Поддержу, но есть нюанс с именованием контейнеров: если не давать явное container-name, а просто container-type: inline-size, то @container без имени срабатывает на ближайший контейнер-предок. Это стреляет в ногу когда вкладываешь карточку внутрь другого контейнера — @container начинает реагировать не на то, на что ты ожидаешь. Лучше сразу привычка: container-type: inline-size; container-name…
Перейти к ответу →
Аватара пользователя
qcdeed
Сообщения: 57
Зарегистрирован: 11 май 2026, 20:16

Re: Container queries — наконец-то выкинул половину медиа-запросов, делюсь лайфхаком

Сообщение qcdeed »

А с поддержкой как? У нас ещё тащится хвост старых браузеров, боюсь включать.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
arich
Сообщения: 22
Зарегистрирован: 20 май 2026, 16:04

Re: Container queries — наконец-то выкинул половину медиа-запросов, делюсь лайфхаком

Сообщение arich »

В 2026 уже все актуальные движки умеют, я проверила по статистике своих юзеров — меньше 0.5% без поддержки, им просто отдаётся дефолтный лейаут через @supports фолбэк. Для дашборда с разными ширинами панелей это вообще game changer, попробуй на одном компоненте.
👍6 ❤️ 🔥4 😄1 🤔
Аватара пользователя
k_egor_s
Сообщения: 20
Зарегистрирован: 16 май 2026, 11:11

Re: Container queries — наконец-то выкинул половину медиа-запросов, делюсь лайфхаком

Сообщение k_egor_s »

✔ Лучший ответ — сформирован автоматически
Поддержу, но есть нюанс с именованием контейнеров: если не давать явное container-name, а просто container-type: inline-size, то @container без имени срабатывает на ближайший контейнер-предок. Это стреляет в ногу когда вкладываешь карточку внутрь другого контейнера — @container начинает реагировать не на то, на что ты ожидаешь. Лучше сразу привычка: container-type: inline-size; container-name: card — и в стилях @container card (min-width: 300px). Явно, дебажится за секунду.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
rhinz
Сообщения: 10
Зарегистрирован: 23 май 2026, 23:20

Re: Container queries — наконец-то выкинул половину медиа-запросов, делюсь лайфхаком

Сообщение rhinz »

Поддерживаю идею, но до сих пор больно с Safari iOS < 16 — там container queries нет. Если аудитория включает старые айфоны, нужен либо полифил (есть container-query-polyfill от Google Chrome Labs, но с ограничениями по производительности), либо держишь fallback через @supports не содержит container-type и даёшь вьюпортный медиазапрос на эти случаи. Caniuse сейчас показывает ~93% глобально, в рунете поменьше из-за доли старых устройств.
👍1 ❤️ 🔥 😄 🤔1
Аватара пользователя
peekatwo
Сообщения: 38
Зарегистрирован: 12 май 2026, 03:30

Re: Container queries — наконец-то выкинул половину медиа-запросов, делюсь лайфхаком

Сообщение peekatwo »

Ещё одна фича которую пропускают рядом с container queries — container query units: cqi, cqb, cqw, cqh. Можно делать font-size: clamp(0.9rem, 4cqi, 1.2rem) внутри контейнера и текст масштабируется относительно ширины именно этого компонента, а не вьюпорта. Для карточек с произвольным текстом это убирает ещё один слой js-ресайз-логики.
👍 ❤️ 🔥 😄 🤔1
Аватара пользователя
js066866
Сообщения: 30
Зарегистрирован: 11 май 2026, 23:52

Re: Container queries — наконец-то выкинул половину медиа-запросов, делюсь лайфхаком

Сообщение js066866 »

все красиво ровно до момента когда приходит дизайнер с макетом, где брейкпоинты нарисованы по вьюпорту. в фигме контейнерных квери нет, дизайнеры мыслят экранами 1440/768/375. у меня в коде контейнеры, в макете экраны, и поди объясни на ревью дизайна, почему карточка в сайдбаре не пиксель в пиксель как в макете. техническая проблема решена, организационная нет
👍1 ❤️ 🔥 😄 🤔1
Аватара пользователя
wasmsre
Сообщения: 13
Зарегистрирован: 11 май 2026, 03:17

Re: Container queries — наконец-то выкинул половину медиа-запросов, делюсь лайфхаком

Сообщение wasmsre »

@peekatwo, с cqi для шрифтов аккуратнее, проверьте зум. если размер текста завязан только на ширину контейнера, ctrl+plus у юзера текст не увеличивает, и привет жалоба по доступности. твой вариант с clamp и rem по краям норм, главное чтоб никто в команде не написал голый font-size: 4cqi без ограничителей
👍2 ❤️1 🔥 😄1 🤔
Аватара пользователя
sainty
Сообщения: 94
Зарегистрирован: 11 май 2026, 02:57

Re: Container queries — наконец-то выкинул половину медиа-запросов, делюсь лайфхаком

Сообщение sainty »

@rhinz, полифил от chrome labs не советую вообще. он на resizeobserver + mutationobserver, на списке из 200 карточек начинает ощутимо лагать на средних андроидах. дешевле отдать старым сафари одноколоночный лейаут через @supports и забыть. ios 15 это айфоны которым 6+ лет, их доля у нас 0.3%
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
SparkMain
Сообщения: 28
Зарегистрирован: 11 май 2026, 00:57

Re: Container queries — наконец-то выкинул половину медиа-запросов, делюсь лайфхаком

Сообщение SparkMain »

+1, выпилил из дизайн-системы штук 30 медиазапросов после перехода, полгода полет нормальный
👍 ❤️1 🔥1 😄1 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Веб-разработка»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость