Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 467новых вакансий за сутки·93 721вакансия открыта сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании7 267
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 401 кандидат открыт к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python17 129
  • Облачные технологии14 088
  • QA вакансии3 457
  • Backend вакансии2 115
  • Инженер данных1 805
  • Продакт-менеджер1 262

Разработка

  • Android1 865
  • iOS1 698
  • Fullstack вакансии989
  • AI вакансии949
  • Frontend вакансии744
  • Mobile вакансии44

По стеку

  • Go8 660
  • Java6 550
  • Node.js2 020
  • .NET1 722
  • Kotlin1 619
  • Rust1 455
  • C#711
  • PHP683
  • C++572

DevOps и инфраструктура

  • Kubernetes7 769
  • DevOps вакансии6 056
  • Linux-инфраструктура5 493
  • Terraform / IaC4 266
  • CI/CD3 250
  • Мониторинг и Observability1 788
  • SRE567
  • Кибербезопасность453

Аналитика и данные

  • Data Scientist1 141
  • Бизнес-аналитик927
  • Аналитик данных854
  • Системный аналитик153

Другие направления

  • Проджект-менеджер616
  • UI/UX дизайн146
  • Ручное тестирование14

По регионам

  • Вакансии в США44 281
  • Вакансии в Европе23 875
  • Вакансии в Канаде4 475
  • Работа в России3 922

По формату

  • Удалённые вакансии75 035
  • Релокация в США44 281
  • Гибридная работа12 401
  • Офисная работа7 079

По уровню

  • Senior вакансии42 679
  • Middle вакансии20 894
  • Junior вакансии6 722

Сейчас нанимают

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab137 вакансий
  • Celonis39 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace16 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме HTML/CSSВсе вопросы
HTML/CSSMiddleТеория

Что такое CSS container queries и чем они отличаются от media queries?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Media queries реагируют на ширину viewport. Container queries — на ширину ближайшего контейнера. Это позволяет компоненту адаптироваться независимо от того, где в макете он находится.

Как работают container queries

Элемент-контейнер помечается свойством container-type. Браузер начинает отслеживать его размер. Дочерние элементы могут запрашивать этот размер через @container.

/* 1. Объявляем контейнер */
.card-wrapper {
  container-type: inline-size; /* отслеживать ширину */
  container-name: card;        /* опционально — имя */
}

/* 2. Стили для дочернего элемента в зависимости от ширины контейнера */
@container (min-width: 480px) {
  .card {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 16px;
  }
}

@container (max-width: 479px) {
  .card {
    display: flex;
    flex-direction: column;
  }
}
<!-- Сайдбар: контейнер узкий → вертикальная карточка -->
<aside class="card-wrapper">
  <div class="card">...</div>
</aside>

<!-- Главная колонка: контейнер широкий → горизонтальная карточка -->
<main class="card-wrapper">
  <div class="card">...</div>
</main>

Один и тот же CSS-компонент автоматически адаптируется — без дополнительных классов или JavaScript.

В чём проблема media queries

Media query привязана к размеру viewport. Если карточка в сайдбаре (300 px) и в главной колонке (800 px) должны выглядеть по-разному, media query не поможет — она не знает, насколько широк родительский контейнер. Приходилось передавать CSS-классы через JS или использовать ResizeObserver — оба варианта хрупкие.

container-type: size vs inline-size

  • inline-size — отслеживает только ширину. Используется в 99% случаев.
  • size — отслеживает ширину и высоту. Требует, чтобы у контейнера была явная высота, иначе браузер не может её измерить (intrinsic height становится 0).
  • normal — контейнер для style queries, но не для size queries.

Style queries

Помимо размеров, можно делать запросы по значениям CSS-custom-properties контейнера:

@container style(--variant: compact) {
  .card__image { display: none; }
}

Style queries поддерживаются в Chrome 111+ / Safari 18+, но пока не в Firefox (статус: в разработке).

Подводные камни

  • Элемент не может запрашивать собственный контейнер. Контейнер создаёт новый контекст форматирования: элемент с container-type не может сам участвовать в @container запросе, который он определяет. Правило всегда применяется к потомкам.
  • container-type: size ломает intrinsic height. При size браузер изолирует контейнер по обеим осям — его высота не определяется содержимым. Если не задать явную высоту, контейнер схлопнется в 0.
  • Производительность при вложенных контейнерах. Каждый уровень container-type добавляет работу браузеру для отслеживания размеров. В длинных списках с контейнерами на каждой карточке это заметно при resize — лучше ставить контейнер как можно выше в дереве.
  • Нет медиа-условий о типе устройства. Container queries не заменяют media queries полностью: @media (prefers-color-scheme: dark), @media print, ориентация — это всё viewport/device-level условия. Оба инструмента нужны вместе.
  • Именование контейнеров — глобальное. container-name не имеет scope. Одинаковые имена в разных компонентах конкурируют, а @container card найдёт ближайшего предка с именем card — не обязательно ожидаемый.
  • Поддержка браузеров. Базовые size container queries поддерживаются с Chrome 105, Safari 16, Firefox 110 (2023). Если нужно поддерживать браузеры до 2023 года — необходим полифилл (container-query-polyfill) или fallback через media queries.
  • Инструменты разработчика. DevTools в Chrome/Firefox 2024 показывают контейнеры в Elements-панели, но подсветка не всегда очевидна. При отладке удобно временно добавить outline: 2px solid red на элемент с container-type, чтобы увидеть реальную ширину контейнера.

Частые вопросы на собеседовании

  • Что такое семантический HTML и почему он важен? Приведите примеры семантических элементов.
  • В чём разница между <script> с атрибутами defer и async?
  • В каких типах frontend-проектов HTML/CSS даёт реальный выигрыш, а где будет избыточен или неудачен?
  • Что такое Flexbox и чем он отличается от Grid? Когда использовать каждый?

Типичные ошибки

  • Смешивать «container queries» с похожим механизмом без критерия выбора.
  • Игнорировать риск: неверно оценить границы применения темы «container queries» и получить хрупкое решение.
  • Показывать только синтаксис и не объяснять поведение в runtime или сборке.

Что проверяет интервьюер

  • Объясняет адаптация компонента по размеру контейнера, а не только viewport.
  • Показывает на примере, как работает: container query работает от query container и позволяет компоненту менять layout в sidebar, card grid или narrow panel без знания общей ширины страницы.
  • Называет production-нюанс и граничный случай для темы «container queries».

Как вы знаете этот вопрос?

Проверить себя по теме HTML/CSS →

Источники

  • https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_containment/Container_queries
  • https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_media_queries/Using_media_queries

Связанные темы

HTML/CSScomponent-designresponsive-layout